我可以使用QApplication和QCoreApplication吗?

时间:2018-06-21 22:10:54

标签: qt qapplication qcoreapplication

我有一个在Qt5中使用QCoreApplication的控制台应用程序。该应用程序具有不同的功能,例如“ printABC”或“ printSUV”。输出将出现在终端中。 现在,我想制作一个Gui,在其中可以按“ printABC”或“ printSUV”按钮,输出也将出现在终端中,因此使用该应用程序“更加轻松”。 在Qt5中,我可以使用QCoreApplication创建一个控制台应用程序。 所以我的问题是我如何添加一个一直运行的QApplication? 在文档中,建议在主函数中创建一个QApplication / QCoreApplication,那么如何同时创建两者?

1 个答案:

答案 0 :(得分:0)

您可以轻松地拥有一个同时支持命令行(终端)模式和GUI模式的应用程序。只需使用QApplication(或仅针对QML的应用程序使用QGuiApplication)。

然后,例如,如果用户通过CLI选项,则只需运行函数并将结果发送到sdtout(大概就像您现在所做的那样)。否则,显示GUI并使用相同的功能,但以其他方式(在UI中)显示数据。

如果还没有,可以研究QCommandLineParser来帮助处理CLI选项。请记住,它与Q[Gui]Application的工作原理也完全相同。

main()中,首先处理任何CLI选项。然后,要不启动GUI,您只需在调用exit(0)之前从main() app.exec() {

编辑:如果您想在启动应用程序的控制台中显示输出,则仍可以简单地打印到stdout(或您正在执行的任何操作) 。但是,如果您希望在Windows上使用此功能,则可能需要执行其他步骤...,并且需要考虑一些事项。我认为这确实是另一个问题的主题。恕我直言,将两者混合在一起(GUI在一个窗口中并在控制台中输出)可能会很尴尬,并且在GUI中显示输出使其完全自成体系。