QCommandLineParser Class

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

ヘッダー #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()も参照

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.