QCommandLineParser Class

QCommandLineParser クラスは、コマンドラインオプションを処理する手段を提供します。詳細...

Header: #include <QCommandLineParser>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

パブリック・タイプ

enum OptionsAfterPositionalArgumentsMode { ParseAsOptions, ParseAsPositionalArguments }
enum SingleDashWordOptionMode { ParseAsCompactedShortOptions, ParseAsLongOptions }

パブリック関数

QCommandLineParser()
~QCommandLineParser()
QCommandLineOption addHelpOption()
bool addOption(const QCommandLineOption &option)
bool addOptions(const QList<QCommandLineOption> &options)
void addPositionalArgument(const QString &name, const QString &description, const QString &syntax = QString())
QCommandLineOption addVersionOption()
QString applicationDescription() const
void clearPositionalArguments()
QString errorText() const
QString helpText() const
bool isSet(const QString &name) const
bool isSet(const QCommandLineOption &option) const
QStringList optionNames() const
bool parse(const QStringList &arguments)
QStringList positionalArguments() const
void process(const QStringList &arguments)
void process(const QCoreApplication &app)
void setApplicationDescription(const QString &description)
void setOptionsAfterPositionalArgumentsMode(QCommandLineParser::OptionsAfterPositionalArgumentsMode parsingMode)
void setSingleDashWordOptionMode(QCommandLineParser::SingleDashWordOptionMode singleDashWordOptionMode)
void showHelp(int exitCode = 0)
void showVersion()
QStringList unknownOptionNames() const
QString value(const QString &optionName) const
QString value(const QCommandLineOption &option) const
QStringList values(const QString &optionName) const
QStringList values(const QCommandLineOption &option) const

詳細な説明

QCoreApplication QCommandLineParser は、コマンドライン引数を単純な文字列のリストとして提供します。QCommandLineParser は、オプションのセットを定義し、コマンドライン引数を解析し、実際に使用されたオプションとオプション値を格納する機能を提供します。

オプションでない(つまり- で始まらない)引数は、「位置引数」として保存されます。

パーサーは、短い名前、長い名前、同じオプションに複数の名前、オプション値を扱います。

コ マ ン ド ラ イ ン上のオプシ ョ ンは、 1 個か 2 個の- キ ャ ラ ク タ で始ま り 、 その後にオプシ ョ ン名が続く と 認識 さ れます。オプション- (シングルダッシュのみ)は特殊なケースで、標準入力を意味することが多く、オプションとしては扱われない。パーサーは、オプション-- (ダブルダッシュ)以降をすべて位置引数として扱う。

短いオプションは1文字である。オプションv は、コマンドラインで-v を渡すことで指定される。デフ ォル ト の解析モー ド では、 短いオプシ ョ ンは コ ン パ ク ト 形式で書 く こ と がで き ます。 た と えば-abc-a -b -c と 等価です。 解析モー ド をParseAsLongOptions に変更す る こ と も で き、 その場合-abc は長いオプシ ョ ンabc と し て解析 さ れます。

長いオプシ ョ ンは 1 文字以上の長 さ であ り 、 コ ン パ ク ト す る こ と はで き ません。長いオプションverbose は、--verbose または-verbose として渡されます。

オプシ ョ ンに値を渡すには、代入演算子 (-v=value,--verbose=value ) を使うか、 スペース (-v value,--verbose value ) を入れます。これは、値が- で始まっていても動作します。

オプシ ョ ンが値を必要 と す る よ う に設定 さ れてい る と き は、必ず値が存在 し てい る 必要があ り ます。こ の よ う なオプシ ョ ンが最後に配置 さ れて値がない と き は、 そのオプシ ョ ンは指定 さ れていない も の と し て扱われます。

--disable-option --no-optionただ し 、no-option を名前の 1 つ と し て持つオプシ ョ ン を作成 し て、 そのオプシ ョ ン を明示的に処理す る こ と に よ っ て、 こ の場合を明示的に処理す る こ と は可能です。

int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);
    QCoreApplication::setApplicationName("my-copy-program");
    QCoreApplication::setApplicationVersion("1.0");

    QCommandLineParser parser;
    parser.setApplicationDescription("Test helper");
    parser.addHelpOption();
    parser.addVersionOption();
    parser.addPositionalArgument("source", QCoreApplication::translate("main", "Source file to copy."));
    parser.addPositionalArgument("destination", QCoreApplication::translate("main", "Destination directory."));

    // A boolean option with a single name (-p)
    QCommandLineOption showProgressOption("p", QCoreApplication::translate("main", "Show progress during copy"));
    parser.addOption(showProgressOption);

    // A boolean option with multiple names (-f, --force)
    QCommandLineOption forceOption(QStringList() << "f" << "force",
            QCoreApplication::translate("main", "Overwrite existing files."));
    parser.addOption(forceOption);

    // An option with a value
    QCommandLineOption targetDirectoryOption(QStringList() << "t" << "target-directory",
            QCoreApplication::translate("main", "Copy all source files into <directory>."),
            QCoreApplication::translate("main", "directory"));
    parser.addOption(targetDirectoryOption);

    // Process the actual command line arguments given by the user
    parser.process(app);

    const QStringList args = parser.positionalArguments();
    // source is args.at(0), destination is args.at(1)

    bool showProgress = parser.isSet(showProgressOption);
    bool force = parser.isSet(forceOption);
    QString targetDir = parser.value(targetDirectoryOption);
    // ...
}

上記の例の3つのaddOption() 呼び出しは、addOptions() を使用することで、よりコンパクトにすることができる:

    parser.addOptions({
        // A boolean option with a single name (-p)
        {"p",
            QCoreApplication::translate("main", "Show progress during copy")},
        // A boolean option with multiple names (-f, --force)
        {{"f", "force"},
            QCoreApplication::translate("main", "Overwrite existing files.")},
        // An option with a value
        {{"t", "target-directory"},
            QCoreApplication::translate("main", "Copy all source files into <directory>."),
            QCoreApplication::translate("main", "directory")},
    });

既知の制限:QCoreApplication とサブクラス内の Qt オプションの解析は、QCommandLineParser が存在する前に行われるため、それを考慮することができません。つまり、組み込みのQtオプションのように見えるオプション値は、QCoreApplication 、組み込みのQtオプションとして扱われます。QCommandLineParser がprofile オプションを定義してコマンドラインを解析する前に、--profile -reverseQGuiApplication に -reverse オプションが設定されていることを示し、QCoreApplication::arguments() からそれを削除します。

複雑なアプリケーションでQCommandLineParserを使用する方法

実際には、位置引数やオプション値に対して追加のエラーチェックを行う必要がある。例えば、数値の範囲をチェックする必要がある。

その場合、オプション値を受け取る構造体またはクラスを受け取り、結果を表すオブジェクトを返す、コマンドラインの解析を行う関数を導入することをお勧めします。QtNetwork モジュールの dnslookup の例がこれを示している:

struct DnsQuery
{
    DnsQuery() : type(QDnsLookup::A) {}

    QDnsLookup::Type type;
    QHostAddress nameServer;
    QString name;
};

struct CommandLineParseResult
{
    enum class Status {
        Ok,
        Error,
        VersionRequested,
        HelpRequested
    };
    Status statusCode = Status::Ok;
    std::optional<QString> errorString = std::nullopt;
};

CommandLineParseResult parseCommandLine(QCommandLineParser &parser, DnsQuery *query)
{
    using Status = CommandLineParseResult::Status;

    parser.setSingleDashWordOptionMode(QCommandLineParser::ParseAsLongOptions);
    const QCommandLineOption nameServerOption("n", "The name server to use.", "nameserver");
    parser.addOption(nameServerOption);
    const QCommandLineOption typeOption("t", "The lookup type.", "type");
    parser.addOption(typeOption);
    parser.addPositionalArgument("name", "The name to look up.");
    const QCommandLineOption helpOption = parser.addHelpOption();
    const QCommandLineOption versionOption = parser.addVersionOption();

    if (!parser.parse(QCoreApplication::arguments()))
        return { Status::Error, parser.errorText() };

    if (parser.isSet(versionOption))
        return { Status::VersionRequested };

    if (parser.isSet(helpOption))
        return { Status::HelpRequested };

    if (parser.isSet(nameServerOption)) {
        const QString nameserver = parser.value(nameServerOption);
        query->nameServer = QHostAddress(nameserver);
        if (query->nameServer.isNull()
            || query->nameServer.protocol() == QAbstractSocket::UnknownNetworkLayerProtocol) {
            return { Status::Error,
                     u"Bad nameserver address: %1"_s.arg(nameserver) };
        }
    }

    if (parser.isSet(typeOption)) {
        const QString typeParameter = parser.value(typeOption);
        if (std::optional<QDnsLookup::Type> type = typeFromParameter(typeParameter))
            query->type = *type;
        else
            return { Status::Error, u"Bad record type: %1"_s.arg(typeParameter) };
    }

    const QStringList positionalArguments = parser.positionalArguments();
    if (positionalArguments.isEmpty())
        return { Status::Error, u"Argument 'name' missing."_s };
    if (positionalArguments.size() > 1)
        return { Status::Error, u"Several 'name' arguments specified."_s };
    query->name = positionalArguments.first();

    return { Status::Ok };
}

メイン関数では、helpオプションが渡された場合、ヘルプが標準出力に出力され、アプリケーションは終了コード0を返す必要があります。

エラーが検出された場合、エラーメッセージが標準エラー出力に出力され、アプリケーションは0以外の終了コードを返すべきである。

    QCoreApplication::setApplicationVersion(QT_VERSION_STR);
    QCoreApplication::setApplicationName(QCoreApplication::translate("QDnsLookupExample",
                                                                     "DNS Lookup Example"));
    QCommandLineParser parser;
    parser.setApplicationDescription(QCoreApplication::translate("QDnsLookupExample",
                                                                 "An example demonstrating the "
                                                                 "class QDnsLookup."));
    DnsQuery query;
    using Status = CommandLineParseResult::Status;
    CommandLineParseResult parseResult = parseCommandLine(parser, &query);
    switch (parseResult.statusCode) {
    case Status::Ok:
        break;
    case Status::Error:
        std::fputs(qPrintable(parseResult.errorString.value_or(u"Unknown error occurred"_s)),
                   stderr);
        std::fputs("\n\n", stderr);
        std::fputs(qPrintable(parser.helpText()), stderr);
        return 1;
    case Status::VersionRequested:
        parser.showVersion();
        Q_UNREACHABLE_RETURN(0);
    case Status::HelpRequested:
        parser.showHelp();
        Q_UNREACHABLE_RETURN(0);
    }

ここで考慮すべき特別なケースは、Windowsやモバイル・プラットフォーム上のGUIアプリケーションである。これらのアプリケーションでは、出力が破棄されるかアクセスできないため、標準出力やエラー・チャンネルを使用しない場合があります。

Windowsでは、QCommandLineParserは、コンソール・ウィンドウが取得できない場合、使用情報とエラーを表示するためにメッセージ・ボックスを使用します。これらのメッセージ・ボックスは、環境変数QT_COMMAND_LINE_PARSER_NO_GUI_MESSAGE_BOXES を設定することで省略することができます。

その他のプラットフォームでは、ヘルプテキストとエラーメッセージをQMessageBox を使用して表示することをお勧めします。ヘルプテキストの書式を保持するために、<pre> 要素を持つリッチテキストを使用する必要があります:

switch (parseResult.statusCode) {
case Status::Ok:
    break;
case Status::Error: {
    QString errorMessage = parseResult.errorString.value_or(u"Unknown error occurred"_qs);
    QMessageBox::warning(0, QGuiApplication::applicationDisplayName(),
                         "<html><head/><body><h2>" + errorMessage + "</h2><pre>"
                         + parser.helpText() + "</pre></body></html>");
    return 1;
}
case Status::VersionRequested:
    QMessageBox::information(0, QGuiApplication::applicationDisplayName(),
                             QGuiApplication::applicationDisplayName() + ' '
                             + QCoreApplication::applicationVersion());
    return 0;
case Status::HelpRequested:
    QMessageBox::warning(0, QGuiApplication::applicationDisplayName(),
                         "<html><head/><body><pre>"
                         + parser.helpText() + "</pre></body></html>");
    return 0;
}

ただし、dnslookupの例はコンソール・アプリケーションなので、これは適用されません。

QCommandLineOption およびQCoreApplicationも参照のこと

メンバ型ドキュメント

enum QCommandLineParser::OptionsAfterPositionalArgumentsMode

この列挙型は、位置引数の後に現れるオプションをパーサが解釈する方法を記述します。

定数説明
QCommandLineParser::ParseAsOptions0application argument --opt -t は、 がそうであるように、 と のオプションを設定するものとして解釈されます。これはデフォルトの構文解析モードです。 と が位置引数であることを指定するには、 のように を使用します。application --opt -t argument opt t --opt -t application argument -- --opt -t --
QCommandLineParser::ParseAsPositionalArguments1application argument --opt は、 と の2つの位置引数を持つものとして解釈されます。このモードは、他の実行可能ファイル(ラッパー、デバッギングツールなど)を起動することを目的とする実行可能ファイルや、コマンドのオプションが続く内部コマンドをサポートする実行可能ファイルに便利です。 はコマンドの名前であり、それ以降に発生するすべてのオプションは、別のコマンドライン・パーサー(場合によっては別の実行可能ファイル)で収集され、解析されます。argument --opt argument

setOptionsAfterPositionalArgumentsMode()も参照のこと

enum QCommandLineParser::SingleDashWordOptionMode

この列挙型は、-abc のように、1つのダッシュの後に複数の文字が続くコマンドラインオプションをパーサが解釈する方法を記述します。

定数説明
QCommandLineParser::ParseAsCompactedShortOptions0-abc は、どのオプションも値を取らない場合、 、すなわち、コマンドラインでコンパクト化された3つの短いオプションとして解釈されます。 が値をとる場合、それは 、つまり短いオプション の後に値 が続くものとして解釈されます。これは通常、 や のようなオプションを扱うために、コンパイラのように振る舞うツールで使用されます。 これはデフォルトの構文解析モードです。新しいアプリケーションでは、このモードを使用することが推奨されます。-a -b -c a -a bc a bc -DDEFINE=VALUE -I/include/path
QCommandLineParser::ParseAsLongOptions1-abc は 、つまり という長いオプションとして解釈されます。これは Qt のツール(uic、rcc...)が常に引数をパースする方法です。このモードは、そのような方法で引数を解析していたアプリケーションの互換性を保つために使用されるべきです。ただし、 オプションに フラグが設定されている場合は例外で、その場合は として解釈されます。--abc abc a QCommandLineOption::ShortOptionStyle -a bc

setSingleDashWordOptionMode()も参照のこと

メンバ関数 ドキュメント

QCommandLineParser::QCommandLineParser()

コマンドライン・パーサー・オブジェクトを構築する。

[noexcept] QCommandLineParser::~QCommandLineParser()

コマンド・ライン・パーサー・オブジェクトを破棄する。

QCommandLineOption QCommandLineParser::addHelpOption()

コマンドライン・パーサーにヘルプ・オプションを追加します。

このコマンドラインに指定されるオプションは、-h または--help で説明される。Windowsでは、-? もサポートされている。オプション--help-all は、このコマンドで定義されていない一般的な Qt オプションを出力に含めるように拡張します。

これらのオプションはQCommandLineParser によって自動的に処理されます。

このオプションが使用されたときに表示されるアプリケーションの説明を設定するには、setApplicationDescription() を使用することを忘れないでください。

int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);
    QCoreApplication::setApplicationName("my-copy-program");
    QCoreApplication::setApplicationVersion("1.0");

    QCommandLineParser parser;
    parser.setApplicationDescription("Test helper");
    parser.addHelpOption();
    parser.addVersionOption();
    parser.addPositionalArgument("source", QCoreApplication::translate("main", "Source file to copy."));
    parser.addPositionalArgument("destination", QCoreApplication::translate("main", "Destination directory."));

    // A boolean option with a single name (-p)
    QCommandLineOption showProgressOption("p", QCoreApplication::translate("main", "Show progress during copy"));
    parser.addOption(showProgressOption);

    // A boolean option with multiple names (-f, --force)
    QCommandLineOption forceOption(QStringList() << "f" << "force",
            QCoreApplication::translate("main", "Overwrite existing files."));
    parser.addOption(forceOption);

    // An option with a value
    QCommandLineOption targetDirectoryOption(QStringList() << "t" << "target-directory",
            QCoreApplication::translate("main", "Copy all source files into <directory>."),
            QCoreApplication::translate("main", "directory"));
    parser.addOption(targetDirectoryOption);

    // Process the actual command line arguments given by the user
    parser.process(app);

    const QStringList args = parser.positionalArguments();
    // source is args.at(0), destination is args.at(1)

    bool showProgress = parser.isSet(showProgressOption);
    bool force = parser.isSet(forceOption);
    QString targetDir = parser.value(targetDirectoryOption);
    // ...
}

isSet() を呼び出すために使用できるオプション・インスタンスを返す。

bool QCommandLineParser::addOption(const QCommandLineOption &option)

解析中に検索するオプションoption を追加します。

オプションの追加が成功した場合はtrue を返し、失敗した場合はfalse を返します。

オプシ ョ ンの追加が失敗 し た と き は、 そのオプシ ョ ンに名前がないか、 またはそのオプシ ョ ンが、 前に追加 さ れたオプシ ョ ン名 と 衝突す る 名前を持っ てい る と き です。

bool QCommandLineParser::addOptions(const QList<QCommandLineOption> &options)

パース中に探すオプションを追加する。オプションはパラメータoptions で指定する。

すべてのオプションの追加が成功した場合はtrue を返し、そうでない場合はfalse を返します。

この関数が失敗する場合については、addOption() のドキュメントを参照。

void QCommandLineParser::addPositionalArgument(const QString &name, const QString &description, const QString &syntax = QString())

ヘルプ・テキストのために、アプリケーションに追加の引数を定義します。

引数namedescription は、ヘルプのArguments: セクションの下に表示される。syntax が指定された場合は、Usage 行に追加され、そうでない場合はname が追加されます。

// Usage: image-editor file
//
// Arguments:
//   file                  The file to open.
parser.addPositionalArgument("file", QCoreApplication::translate("main", "The file to open."));

// Usage: web-browser [urls...]
//
// Arguments:
//   urls                URLs to open, optionally.
parser.addPositionalArgument("urls", QCoreApplication::translate("main", "URLs to open, optionally."), "[urls...]");

// Usage: cp source destination
//
// Arguments:
//   source                Source file to copy.
//   destination           Destination directory.
parser.addPositionalArgument("source", QCoreApplication::translate("main", "Source file to copy."));
parser.addPositionalArgument("destination", QCoreApplication::translate("main", "Destination directory."));

addHelpOption() およびhelpText()も参照

QCommandLineOption QCommandLineParser::addVersionOption()

アプリケーションのバージョン文字列を表示する-v /--version オプションを追加します。

このオプションはQCommandLineParser によって自動的に処理されます。

実際のバージョン文字列を設定するには、QCoreApplication::setApplicationVersion() を使用します。

isSet() を呼び出すために使用できるオプション・インスタンスを返します。

QString QCommandLineParser::applicationDescription() const

setApplicationDescription() で設定したアプリケーションの説明を返します。

setApplicationDescription()も参照してください

void QCommandLineParser::clearPositionalArguments()

ヘルプ・テキストから追加引数の定義を消去します。

これは、異なるオプションを持つ複数のコマンドをサポートするツールの特殊な場合にのみ必要です。実際のコマンドが特定されると、このコマンドのオプションを定義し、それに応じてコマンドのヘルプ・テキストを調整することができます。

QCoreApplication app(argc, argv);
QCommandLineParser parser;

parser.addPositionalArgument("command", "The command to execute.");

// Call parse() to find out the positional arguments.
parser.parse(QCoreApplication::arguments());

const QStringList args = parser.positionalArguments();
const QString command = args.isEmpty() ? QString() : args.first();
if (command == "resize") {
    parser.clearPositionalArguments();
    parser.addPositionalArgument("resize", "Resize the object to a new size.", "resize [resize_options]");
    parser.addOption(QCommandLineOption("size", "New size.", "new_size"));
    parser.process(app);
    // ...
}

/*
This code results in context-dependent help:

$ tool --help
Usage: tool command

Arguments:
  command  The command to execute.

$ tool resize --help
Usage: tool resize [resize_options]

Options:
  --size <size>  New size.

Arguments:
  resize         Resize the object to a new size.
*/

QString QCommandLineParser::errorText() const

ユーザーのために翻訳されたエラー・テキストを返す。これは、parse() がfalse を返した場合にのみ呼び出される。

QString QCommandLineParser::helpText() const

ヘルプ情報全体を含む文字列を返します。

showHelp()も参照

bool QCommandLineParser::isSet(const QString &name) const

name オプションがアプリケーションに渡されたかどうかをチェックします。

オプションname が設定されていればtrue を返し、そうでなければ false を返します。

指定する名前は、addOption() で追加したオプションの長い名前でも短い名前でもかまいません。すべてのオプション名は等価なものとして扱われます。その名前が認識できないか、そのオプションが存在しなかった場合は false を返す。

bool verbose = parser.isSet("verbose");

bool QCommandLineParser::isSet(const QCommandLineOption &option) const

これはオーバーロードされた関数です。

option がアプリケーションに渡されたかどうかをチェックする。

option が設定されていればtrue を返し、そうでなければ false を返す。

これは、値のないオプションをチェックする推奨の方法です。

QCoreApplication app(argc, argv);
QCommandLineParser parser;
QCommandLineOption verboseOption("verbose");
parser.addOption(verboseOption);
parser.process(app);
bool verbose = parser.isSet(verboseOption);

QStringList QCommandLineParser::optionNames() const

例) 見つかったオプシ ョ ン名の リ ス ト を返す。

こ れは、 パーサーに よ っ て見つけ ら れたすべての認識 さ れたオプシ ョ ン名の リ ス ト を、 見つかった順に返 し ます。長いオプシ ョ ンで {-option=value} の形のものについては、 value 部分は削除 さ れてい ます。

こ の リ ス ト の名前は、 直前のダ ッ シ ュ キ ャ ラ ク タ を含んでい ません。名前は、パーサーが複数回遭遇した場合、このリストに複数回表示されることがあります。

リスト内のどのエントリも、value() またはvalues() を使用して、関連するオプション値を取得することができる。

bool QCommandLineParser::parse(const QStringList &arguments)

コマンドラインarguments を解析する。

ほとんどのプログラムでは、これを呼び出す必要はない。process() を呼び出すだけで十分である。

parse()はより低レベルで、パース処理のみを行う。parse()がfalse を返した場合は、errorText() を使用して、アプリケーション側でエラー処理を行う必要がある。これは例えば、グラフィカル・プログラムでエラー・メッセージをグラフィカルに表示するのに便利である。

また、process() の代わりに parse() を呼び出すことで、未知のオプションを一時的に無視することもできます。これは、process() を呼び出す前に、(引数のいずれかによって)オプション定義が後でさらに提供されるからです。

arguments は、実行可能ファイル名で始めなければならないことをお忘れなく(無視されるが)。

パース・エラー(不明なオプションや値がない)の場合はfalse を返し、それ以外の場合はtrue を返す。

process()も参照のこと

QStringList QCommandLineParser::positionalArguments() const

位置引数のリストを返す。

これらは、オプションの一部として認識されなかったすべての引数である。

void QCommandLineParser::process(const QStringList &arguments)

コマンドラインを処理するarguments

parse() のように)オプションを解析するだけでなく、この関数は組み込みオプションも処理し、エラーも処理します。

組み込みオプションは、addVersionOption が呼び出された場合は--version であり、addHelpOption が呼び出された場合は--help /--help-all である。

これらのオプションのいずれかが呼び出された場合、またはエラーが発生した場合(たとえば不明なオプションが渡された場合)、exit()関数を使用して現在のプロセスが停止します。

QCoreApplication::arguments() およびparse()も参照

void QCommandLineParser::process(const QCoreApplication &app)

これはオーバーロードされた関数である。

コマンドラインは、QCoreApplication インスタンスapp から取得される。

void QCommandLineParser::setApplicationDescription(const QString &description)

helpText() が示すアプリケーションdescription を設定する。

applicationDescription()も参照してください

void QCommandLineParser::setOptionsAfterPositionalArgumentsMode(QCommandLineParser::OptionsAfterPositionalArgumentsMode parsingMode)

構文解析モードをparsingMode に設定します。これは、process() またはparse() の前に呼び出す必要があります。

void QCommandLineParser::setSingleDashWordOptionMode(QCommandLineParser::SingleDashWordOptionMode singleDashWordOptionMode)

構文解析モードをsingleDashWordOptionMode に設定します。これはprocess() またはparse() の前に呼び出す必要があります。

void QCommandLineParser::showHelp(int exitCode = 0)

ヘルプ情報を表示し、アプリケーションを終了します。これは、-help オプションによって自動的に起動されますが、ユーザがアプリ ケーションを正しく起動していない場合にヘルプを表示するためにも使用できます。終了コードはexitCode に設定されます。 ユーザーがヘルプを表示するように要求した場合は 0 に設定され、エラーの場合は他の値に設定されるべきです。

helpText()も参照

void QCommandLineParser::showVersion()

QCoreApplication::applicationVersion() のバージョン情報を表示し、アプリケーションを終了します。これは -version オプションによって自動的に起動されるが、process() を使用していない場合にバージョンを表示するために使用することもできる。終了コードは EXIT_SUCCESS (0) に設定される。

addVersionOption()も参照のこと

QStringList QCommandLineParser::unknownOptionNames() const

未知のオプション名のリストを返す。

このリストには、認識できなかった長い名前オプションと短い名前オプションの両方が含まれる。長いオプシ ョ ンで {-option=value} の形式をとるものについては、 value 部分は削除 さ れて長い名前だけが追加 さ れます。

こ の リ ス ト の名前には、 直前のダ ッ シ ュ キ ャ ラ ク タ は含まれません。パーサが複数回遭遇した場合、名前はこのリストに複数回現れるかもしれません。

optionNames()も参照

QString QCommandLineParser::value(const QString &optionName) const

与えられたオプシ ョ ン名optionName に対 し て見つかったオプシ ョ ン値を返 し 、 見つから なければ空文字列を返 し ます。

与えられた名前は、addOption() で追加されたオプションの長短任意の名前とすることができる。すべてのオプシ ョ ン名は等価 と し て扱われる。名前が認識されないか、そのオプションが存在しなかった場合、空文字列が返される。

パーサが見つけたオプションについては、そのオプションについて最後に見つかった値が返される。オプションがコマンドラインで指定されていない場合は、デフォルト値が返される。

オプションが値を取らない場合、警告が表示され、空文字列が返される。

values()、QCommandLineOption::setDefaultValue()、QCommandLineOption::setDefaultValues()も参照

QString QCommandLineParser::value(const QCommandLineOption &option) const

これはオーバーロードされた関数です。

与えられたoption に対して見つかったオプション値を返すか、見つからなければ空文字列を返す。

パーサによって見つかったオプションについては、そのオプションについて最後に見つかった値が返されます。オプシ ョ ンがコマン ド ラ イ ンで指定 さ れていない と き は、 デフ ォ ル ト 値が返 さ れます。

オプションが値をとらない場合は空文字列が返されます。

values()、QCommandLineOption::setDefaultValue()、QCommandLineOption::setDefaultValues()も参照

QStringList QCommandLineParser::values(const QString &optionName) const

与えられたオプション名optionName に対して見つかったオプション値のリストを返すか、 見つからなければ空のリストを返す。

与えられた名前は、addOption() で追加されたオプションの長短任意の名前にすることができます。すべてのオプシ ョ ン名は等価 と し て扱われます。名前が認識されないか、そのオプションが存在しなかった場合、空のリストが返される。

パーサが見つけたオプションについては、そのリストには、パーサがそのオプションに出会うたびにエントリが入ります。オプションがコマンドラインで指定されていない場合は、デフォルト値が返される。

オプションが値をとらない場合は、空のリストが返されます。

value()、QCommandLineOption::setDefaultValue()、QCommandLineOption::setDefaultValues()も参照

QStringList QCommandLineParser::values(const QCommandLineOption &option) const

これはオーバーロードされた関数です。

与えられたoption で見つかったオプシ ョ ン値の リ ス ト を返 し 、 見つから なければ空 リ ス ト を返 し ます。

パーサが見つけたオプシ ョ ンの場合、 リ ス ト には、 パーサがそのオプシ ョ ンに遭遇す る たび ご と の項目が含まれます。オプシ ョ ンがコマン ド ラ イ ンで指定 さ れていない と き は、 デフ ォ ル ト 値が返 さ れます。

オプションが値をとらない場合は、空のリストが返されます。

value()、QCommandLineOption::setDefaultValue()、QCommandLineOption::setDefaultValues()も参照してください

このドキュメントに含まれるコントリビューションの著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。