概要
Qt 5.2以降では、QCommandLineParser
クラスとQCommandLineOption
クラスが追加され、コマンドライン引数の扱いが簡潔になっている。
ここでは、これらのクラスの使用方法について記載する。
サンプルコード
以下のサンプルコードでは、sl
コマンドのオプションに倣って、-a
、-l
、-F
、-h/–help
を解析している。
#include <QtCore/QCoreApplication>
#include <QtCore/QCommandLineParser>
#include <QtCore/QDebug>
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
app.setApplicationName(QStringLiteral("sl - correct miss typing"));
QCommandLineParser parser;
parser.setApplicationDescription(QStringLiteral("sl is a highly developed animation program, which corrects your miss typing."));
parser.addHelpOption();
QCommandLineOption accidents(QStringLiteral("a"), QStringLiteral("It seems some accidents have happened. People give sad cries."));
parser.addOption(accidents);
QCommandLineOption smaller(QStringLiteral("l"), QStringLiteral("Becomes smaller."));
parser.addOption(smaller);
QCommandLineOption fly(QStringLiteral("F"), QStringLiteral("Flies."));
parser.addOption(fly);
parser.process(app);
if (parser.isSet(accidents))
{
qDebug() << "Help!";
}
if (parser.isSet(smaller))
{
qDebug() << "smaller";
}
if (parser.isSet(fly))
{
qDebug() << "I can fly!";
}
return 0;
}
# 実行 ./sl ./sl -a ./sl -l ./sl -a -l ./sl -al ./sl -h ./sl -S # 結果 Help! smaller Help! smaller Help! smaller Usage: ./sl [options] sl is a highly developed animation program, which corrects your miss typing. Options: -h, --help Displays this help. -a It seems some accidents have happened. People give sad cries. -l Becomes smaller. -F Flies. Unknown option 'S'.
※備考
様々なケースに対応できるような構造になっている。
詳細は、QCommandLineParser
とQCommandLineOption
のドキュメントを参照すること。
また、他の使用方法については、qtbase/tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cppのテストケースを参照すること。