c – 带有可选gui的Qt应用程序

前端之家收集整理的这篇文章主要介绍了c – 带有可选gui的Qt应用程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我将使用Qt编写程序进行一些图像处理,我希望它能够以非gui模式运行(守护进程模式?).我受到VLC播放器的启发,这是一个“典型”的GUI程序,您可以使用GUI对其进行配置,但是当它在没有GUI的情况下运行时,您也可以在非gui选项中运行它.然后它使用在GUI模式下创建的一些配置文件.

问题是这样的程序设计应该怎样?应该是一些程序核心,它是独立于GUI的,并且取决于它与GUI接口连接的选项?

解决方法

是的,您可以使用 QCommandLineParser对二进制文件使用“无头”或“gui”选项.请注意,它仅在5.3中可用,但如果您仍然不使用它,则主要系列中的迁移路径非常流畅.

main.cpp中

  1. #include <QApplication>
  2. #include <QLabel>
  3. #include <QDebug>
  4. #include <QCommandLineParser>
  5. #include <QCommandLineOption>
  6.  
  7. int main(int argc,char **argv)
  8. {
  9. QApplication application(argc,argv);
  10. QCommandLineParser parser;
  11. parser.setApplicationDescription("My program");
  12. parser.addHelpOption();
  13. parser.addVersionOption();
  14.  
  15. // A boolean option for running it via GUI (--gui)
  16. QCommandLineOption guiOption(QStringList() << "gui","Running it via GUI.");
  17. parser.addOption(guiOption);
  18.  
  19. // Process the actual command line arguments given by the user
  20. parser.process(application);
  21. QLabel label("Runninig in GUI mode");
  22. if (parser.isSet(guiOption))
  23. label.show();
  24. else
  25. qDebug() << "Running in headless mode";
  26.  
  27. return application.exec();
  28. }

main.pro

  1. TEMPLATE = app
  2. TARGET = main
  3. QT += widgets
  4. SOURCES += main.cpp

构建并运行

  1. qmake && make && ./main
  2. qmake && make && ./main --gui

用法

  1. Usage: ./main [options]
  2. My program
  3.  
  4. Options:
  5. -h,--help Displays this help.
  6. -v,--version Displays version information.
  7. --gui Running it via GUI.

猜你在找的C&C++相关文章