QCommandLineParser добавляет функциональность к аргументам

Я новичок в Qt Framework и использую QCommandLineParser написать простое консольное приложение, которое может обрабатывать некоторые аргументы, такие как:

myapp.exe start

или же

myapp.exe get update

Как я могу понять, что пользователь ввел аргумент?
Я хочу добавить функциональность в аргументы.

вот мой код:

#include <QCoreApplication>
#include<QTextStream>
#include <QDebug>
#include<QCommandLineParser>

int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QCoreApplication::setApplicationName("Wom");
QCoreApplication::setApplicationVersion("1.0.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);
return 0;
}

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]