C/C++로 작성된 응용프로그램의 main함수는 두개의 인수(관습적으로 argc와 argv)를 전달받을 수 있다. 프로그래머는 응용프로그램에 명령줄옵셔들을 전달하여 프로그램을 상황에 따라 제어하는데 많이 사용된다. (사실 main함수에는 세번째 인수로 환경변수를 전달 받을 수 있다.)
#include <QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
// QApplication 객체를 생성할 때 argc와 argv를 전달한다.
QApplication app(argc, argv);
// MainWindow를 생성한다.
MainWindow w;
w.resize(1280, 720);
w.show();
return app.exec();
}
이 후 QApplication 객체를 통해 인수를 얻을 수 있다.
QStringList args = app.arguments();
#include <QCommandLineParser>
int main(int argc, char *argv[])
{
// QApplication 객체를 생성할 때 argc와 argv를 전달한다.
QApplication app(argc, argv);
MainWindow w;
w.resize(1280, 720);
QCommandLineParser parser;
// -h (help)옵션을 추가해준다.
parser.addHelpOption();
// 짧은 이름(-s)을 가진 bool 옵션 추가.
QCommandLineOption showWindowOption("s", QCoreApplication::translate("main", "Show Window"));
parser.addOption(showWindowOption);
// 여러 이름을(-f, --force)가진 bool 옵션 추가.
QCommandLineOption forceOption(QStringList() << "f" << "force",
QCoreApplication::translate("main", "Overwrite existing files."));
parser.addOption(forceOption);
// 실제 명령 줄 인수 처리
parser.process(app);
bool show = parser.isSet(showWindowOption);
if(show){
/* 옵션(-s)이 포함되면 윈도우를 보여준다. */
w.show();
}
return app.exec();
}