QCommandLineParser Class
QCommandLineParser クラスは、コマンドラインオプションを処理するための手段を提供します。詳細...
| ヘッダー: | #include <QCommandLineParser> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
パブリック型
(since 6.9) enum class | MessageType { Information, Error } |
| 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 |
静的パブリックメンバー
(since 6.9) void | showMessageAndExit(QCommandLineParser::MessageType type, const QString &message, int exitCode = 0) |
詳細な説明
QCoreApplication は、コマンドライン引数を単純な文字列のリストとして提供します。QCommandLineParser を使用すると、一連のオプションを定義し、コマンドライン引数を解析し、実際に使用されたオプションやオプションの値を保存することができます。
オプションではない引数(つまり、- で始まらない引数)は、「位置引数」として保存されます。
このパーサーは、短縮名、完全名、同一オプションに対する複数の名前、およびオプション値を処理します。
コマンドライン上のオプションは、1 つまたは 2 つの「- 」文字で始まり、その後にオプション名が続くものとして認識されます。オプション「- 」(ダッシュ 1 つだけ)は特殊なケースであり、多くの場合標準入力を意味するため、オプションとしては扱われません。パーサーは、オプション「-- 」(ダッシュ 2 つ)の後のすべてを位置引数として扱います。
短縮オプションは単一の文字です。オプション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 を含む名前を持つオプションを作成し、そのオプションを明示的に処理することで、このケースに対応することは可能です。
例:
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がインスタンス化される前に実行されるため、QCommandLineParserはこれを考慮に入れることができません。つまり、Qtの組み込みオプションのように見えるオプション値はすべて、QCoreApplication によってQtの組み込みオプションとして扱われてしまいます。 例:--profile -reverse と指定した場合、QGuiApplication は-reverseオプションが設定されていると認識し、QCommandLineParserがprofile オプションを定義してコマンドラインを解析する前に、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 };
}main関数では、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も参照してください 。
メンバ型のドキュメント
[since 6.9] enum class QCommandLineParser::MessageType
この列挙型は、メッセージの種類や、ユーザーへの表示方法を指定するために使用されます。
| 定数 | 値 | 説明 |
|---|---|---|
QCommandLineParser::MessageType::Information | 0 | 情報メッセージを表示するために使用されます。メッセージは `stdout` に出力されます。 |
QCommandLineParser::MessageType::Error | 1 | エラーメッセージを表示するために使用されます。メッセージは `stderr` に出力されます。 |
この列挙型は Qt 6.9 で導入されました。
showMessageAndExit()も参照してください 。
enum QCommandLineParser::OptionsAfterPositionalArgumentsMode
この列挙型は、位置引数の後に続くオプションをパーサーがどのように解釈するかを定義します。
| 定数 | 値 | 説明 |
|---|---|---|
QCommandLineParser::ParseAsOptions | 0 | application argument --opt -t は、application --opt -t argument と同様に、オプションopt およびt を設定するものとして解釈されます。これがデフォルトの解析モードです。--opt および-t を位置引数として指定するには、application argument -- --opt -t のように-- を使用します。 |
QCommandLineParser::ParseAsPositionalArguments | 1 | application argument --opt は、argument と--opt という2つの位置引数を持つものとして解釈されます。 このモードは、他の実行ファイル(ラッパーやデバッグツールなど)を起動することを目的とした実行ファイルや、内部コマンドの後にそのコマンドのオプションが続く形式をサポートする実行ファイルに有用です。argument はコマンド名であり、その後に続くすべてのオプションは、別のコマンドラインパーサー(場合によっては別の実行ファイル内)によって収集および解析することができます。 |
setOptionsAfterPositionalArgumentsMode()も参照してください 。
enum QCommandLineParser::SingleDashWordOptionMode
この列挙型は、パーサーが、単一のダッシュの後に複数の文字が続くコマンドラインオプション(例:-abc )をどのように解釈するかを定義します。
| 定数 | 値 | 説明 |
|---|---|---|
QCommandLineParser::ParseAsCompactedShortOptions | 0 | -abc は、-a -b -c として解釈されます。つまり、どのオプションも値を必要としない場合、コマンドライン上で3つの短縮オプションが結合されたものとみなされます。a が値を取る場合、それは-a bc として解釈されます。つまり、ショートオプションa の後に値bc が続く形となります。これは通常、コンパイラのように動作するツールで、-DDEFINE=VALUE や-I/include/path などのオプションを処理するために使用されます。これがデフォルトの解析モードです。新しいアプリケーションでは、このモードを使用することをお勧めします。 |
QCommandLineParser::ParseAsLongOptions | 1 | -abc は、--abc 、すなわちabc という名前のロングオプションとして解釈されます。これは、Qt 独自のツール(uic、rcc など)が従来から引数を解析してきた方法です。このモードは、このような方法で引数を解析していたアプリケーションとの互換性を維持するために使用する必要があります。 ただし、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())
ヘルプテキスト用に、アプリケーションへの追加引数を定義します。
引数「name 」および「description 」は、ヘルプの「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() およびshowMessageAndExit()も参照してください 。
[static, since 6.9] void QCommandLineParser::showMessageAndExit(QCommandLineParser::MessageType type, const QString &message, int exitCode = 0)
message を表示し、指定されたexitCode でアプリケーションを終了します。
message は通常、指定されたtype に基づいてstdout またはstderr に直接出力されます。あるいは、必要に応じて Windows 上でメッセージボックスに表示されることもあり、その場合は指定されたtype に基づいて情報アイコンまたはエラーアイコンが表示されます(メッセージボックスを表示したくない場合は、QT_COMMAND_LINE_PARSER_NO_GUI_MESSAGE_BOXES 環境変数を設定してください)。
これは、showHelp 、showVersion 、および組み込みオプション(addVersionOption が呼び出された場合は--version 、addHelpOption が呼び出された場合は--help /--help-all )で使用されているのと同じメッセージ表示方法です。
この関数は Qt 6.9 で導入されました。
addVersionOption()、showHelp()、showVersion()、およびQCommandLineParser::MessageTypeも参照してください 。
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 に対して見つかったオプション値のリストを返します。見つからない場合は空のリストを返します。
パーサーによって検出されたオプションの場合、このリストには、パーサーがそのオプションを検出するたびに1つのエントリが含まれます。コマンドラインでオプションが指定されていない場合は、デフォルト値が返されます。
オプションに値が指定されない場合は、空のリストが返されます。
これはオーバーロードされた関数です。
value()、QCommandLineOption::setDefaultValue()、およびQCommandLineOption::setDefaultValues()も参照してください 。
© 2026 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.