MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Qtの設定 - コマンドライン引数のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Qtの設定 - コマンドライン引数
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Qt 5.2以降では、<code>[https://doc.qt.io/qt-5/qcommandlineparser.html QCommandLineParser]</code>クラスと<code>[https://doc.qt.io/qt-5/qcommandlineoption.html QCommandLineOption]</code>クラスが追加され、コマンドライン引数の扱いが簡潔になっている。<br> また、<code>QCoreApplication</code>クラスの<code>arguments</code>メソッドを使用することでも、コマンドライン引数を扱うことができる。<br> <br> ここでは、これらのクラスの使用方法について記載する。<br> 併せて、デバッグ時のみ使用するコマンドライン引数の設定方法も記載する。<br> <br><br> == QCommandLineParserクラスの使用 == 以下の例では、<code>QCommandLineParser</code>クラスを使用して、指定されたオプションを処理している。<br> <br> * QCommandLineParserクラスを使用してコマンドラインオプションを定義する。 * -hオプション、--helpオプション、-vオプション、--versionオプションは、その後に続く値が不要なため、Qtにより自動的に処理される。 * -cオプション、--configオプションを追加で定義して、値を受け取るように指定する。 * 上記に存在しないオプションが指定された場合、それらを表示する。 <br> <syntaxhighlight lang="c++"> #include <QCoreApplication> #include <QCommandLineParser> #include <QCommandLineOption> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QCoreApplication::setApplicationName("<任意のアプリケーション名>"); QCoreApplication::setApplicationVersion("1.0"); QCommandLineParser parser; parser.setApplicationDescription("Command line options example"); // バージョンオプション QCommandLineOption versionOption(QStringList() << "v" << "version", "Displays version information."); parser.addOption(versionOption); // ヘルプオプション QCommandLineOption helpOption(QStringList() << "h" << "help", "Displays help information."); parser.addOption(helpOption); // 設定オプション QCommandLineOption configOption(QStringList() << "c" << "config", "Display the configuration string.", "config"); parser.addOption(configOption); parser.process(a); if (parser.isSet(helpOption)) { parser.showHelp(); return 0; } if (parser.isSet(versionOption)) { qDebug() << QCoreApplication::applicationName() << QCoreApplication::applicationVersion(); return 0; } if (parser.isSet(configOption)) { QString configString = parser.value(configOption); qDebug() << "Configuration: " << configString; return 0; } // 不明なオプションの場合 QStringList unknownOptions = parser.unknownOptionNames(); if (!unknownOptions.isEmpty()) { for (const QString &option : unknownOptions) { qDebug() << "不明なオプション: " << option; } return -1; } qDebug() << "有効なオプションはありません。使用法については、-h または --help を使用してください。"; return 0; } </syntaxhighlight> <br> # 実行 <実行ファイル名> -h または <実行ファイル名> --help ヘルプ情報を表示する <実行ファイル名> -v または <実行ファイル名> --version バージョン情報を表示する <実行ファイル名> -c "<任意の文字列>" または <実行ファイル名> --config "<任意の文字列>" 指定された設定文字列を表示する <実行ファイル名> -x "不明なオプション: x" と表示する <br> <u>※注意</u><br> <code>QCommandLineParser</code>クラスは、様々なケースに対応できるような構造になっている。<br> 詳細は、<code>[https://doc.qt.io/qt-5/qcommandlineparser.html QCommandLineParser]</code>と<code>[https://doc.qt.io/qt-5/qcommandlineoption.html QCommandLineOption]</code>のドキュメントを参照すること。<br> また、他の使用方法については、[https://code.qt.io/cgit/qt/qtbase.git/tree/tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp qtbase/tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp]のテストケースを参照すること。<br> <br><br> == QCoreApplicationクラスを使用する方法 == 上記とは別の方法として、<code>QCoreApplication::arguments()</code>を使用することもできる。<br> <code>QCoreApplication::arguments()</code>の型は<code>QStringList</code>であるため、簡単に取得および加工することができる。<br> <br> 以下の3つの例では、全てのコマンドライン引数を<code>QStringList</code>クラスで取得して表示している。<br> コマンドライン引数の1つ目の要素を削除している理由は、1つ目の引数にはソフトウェアのパスが渡されるからである。<br> <syntaxhighlight lang="c++"> // 方法 1 QStringList argv = QCoreApplication::arguments(); argv.removeAt(0); for(QString arg : argv) { qDebug() << "argument = " << arg; } </syntaxhighlight> <br> <syntaxhighlight lang="c++"> // 方法 2 QStringList argv = QCoreApplication::arguments(); for(int i = 1; i < arguments.count(); i++) { qDebug() << "argument = " << arguments.at(i); } </syntaxhighlight> <br> <syntaxhighlight lang="c++"> // 方法 3 QStringList argv = QCoreApplication::arguments(); argv.removeAt(0); foreach(QString const &arg, arguments) { qDebug() << arg; } </syntaxhighlight> <br><br> == デバッグ時におけるコマンドライン引数の設定 == # Qt Creatorを起動して、任意のQtプロジェクトを開く。 # Qt Creatorのメイン画面左にある[プロジェクト]アイコン - [Build & Run]セクション - [Run]項目を選択して、[実行時の設定]画面を表示する。 # [実行時の設定]画面から、[実行]セクション - [コマンドライン引数:]項目に、コマンドライン引数を記述する。 <br> コマンドライン引数の記述方法は、以下の通りである。<br> # 各引数は半角スペースで区切る hoge piyo fuga # 引数の内容に空白が入っている場合は、ダブルクォーテーション""で囲む "hoge piyo" fuga # 引数の内容にダブルクォーテーション""が入っている場合は、直前にエスケープシーケンスを記述する "hoge \" piyo" fuga <br><br> __FORCETOC__ [[カテゴリ:Qt]]
Qtの設定 - コマンドライン引数
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse