В настоящее время у меня есть работающее приложение командной строки Qt.Однако мне нужно реорганизовать эту рабочую программу так, чтобы мой объект QCommandLineParser был сконфигурирован в методе класса, а не в самом main ().Я пробовал очевидное:
В ExecuteTask.h:
void setUp(QCommandLineParser parser);
В ExecuteTask.cpp:
void ExecuteTask::setUp(QCommandLineParser parser){
parser.setApplicationDescription("Learning console app in Qt");
parser.addHelpOption();
}
В main.cpp:
...
QCoreApplication app(argc, argv);
ExecuteTask cmnd_line_func;
QCommandLineParser parser;
cmnd_line_func.setUp(parser);
...
Однако я получаю эту ошибку (прикреплено в ссылке): Ошибка компиляции
Я также пытался объявить синтаксический анализатор QCommandLineParser в качестве указателя в ExecuteTask.h, но, очевидно, это приводит к проблемамкогда вам нужно запустить:
parser.process(app)
в основном.На самом деле я попытался также передать QCoreApplication app
в мою функцию setUp для запуска parser.process(app)
в моем методе setUp()
, но это вызвало аналогичное "... является закрытым в этом контексте".
Также пробовал другое решение, где объявление QCommandLineParser parser
в качестве указателя и использование метода getParser()
для возврата синтаксического анализатора в main, но это приводит к аналогичным «частным» проблемам.
- нетИдея, куда идти отсюда, поскольку я привык к C ++ и просто передаю argc и argv в методы, но это с Qt отличается.
Так есть ли способ, которым QCommandLineParser может быть передан методу вне функции main ()? Документы мне не сильно помогли, и почти каждый учебник, с которым я сталкивался, имеетвсе настройки выполняются в main (), и это совсем не то, что я хочу.