Как использовать QCommandLineParser для Аргументов с несколькими парами?
Интересно, как я могу использовать множественные или суб-аргументы с QCommandLineParser ?
Например:
/home/my_app --my_option_with_two_params first_param second_param --my-option-with-one-param param?
1 ответ:
Попробуйте это, которое имеет аналогию
-I /my/include/path1 -I /my/include/path2:--my_option_with_two_params first_param --my_option_with_two_params second_param... и тогда вы можете использовать Этот метод , чтобы иметь доступ к значениям:
QStringList QCommandLineParser:: values(const QString & optionName) const
Возвращает список значений параметров, найденных для данного имени параметра optionName, или пустой список, если он не найден.
Предоставленное имя может быть любым длинным или коротким именем любого параметра, добавленного с помощью addOption ().
Вот вы можно найти простой тестовый случай, который работает:
Главная.cpp
#include <QCoreApplication> #include <QCommandLineParser> #include <QCommandLineOption> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); QCoreApplication::setApplicationName("multiple-values-program"); QCoreApplication::setApplicationVersion("1.0"); QCommandLineParser parser; parser.setApplicationDescription("Test helper"); parser.addHelpOption(); parser.addVersionOption(); QCommandLineOption targetDirectoryOption(QStringList() << "t" << "target-directory", QCoreApplication::translate("main", "Copy all source files into <directory>."), QCoreApplication::translate("main", "directory")); parser.addOption(targetDirectoryOption); parser.process(app); qDebug() << parser.values(targetDirectoryOption); return 0; }Main.pro
TEMPLATE = app TARGET = main QT = core SOURCES += main.cppПостроить и запустить
qmake && makeЗапуск и вывод
./main -t foo -t bar -> ("foo", "bar") ./main -t foo bar -> ("foo")
Comments