作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我打算使用 Qt 编写一些图像处理程序,我希望它能够在非图形用户界面模式(守护进程模式?)下运行。我受到 VLC 播放器的启发,它是“典型的”GUI 程序,您可以在其中使用 GUI 对其进行配置,但是当它在没有 GUI 的情况下运行时,您也可以在 non-gui
选项中运行它。然后它使用一些在 GUI 模式下创建的配置文件。
问题是这样的程序应该怎么设计?应该是一些程序核心,它独立于 GUI 并且取决于它与 GUI 界面连接的选项?
最佳答案
是的,您可以使用 QCommandLineParser 为二进制文件使用“headless”或“gui”选项.请注意,它仅从 5.3 开始可用,但如果您仍然不使用它,则在主要系列中的迁移路径非常顺利。
#include <QApplication>
#include <QLabel>
#include <QDebug>
#include <QCommandLineParser>
#include <QCommandLineOption>
int main(int argc, char **argv)
{
QApplication application(argc, argv);
QCommandLineParser parser;
parser.setApplicationDescription("My program");
parser.addHelpOption();
parser.addVersionOption();
// A boolean option for running it via GUI (--gui)
QCommandLineOption guiOption(QStringList() << "gui", "Running it via GUI.");
parser.addOption(guiOption);
// Process the actual command line arguments given by the user
parser.process(application);
QLabel label("Runninig in GUI mode");
if (parser.isSet(guiOption))
label.show();
else
qDebug() << "Running in headless mode";
return application.exec();
}
TEMPLATE = app
TARGET = main
QT += widgets
SOURCES += main.cpp
qmake && make && ./main
qmake && make && ./main --gui
Usage: ./main [options]
My program
Options:
-h, --help Displays this help.
-v, --version Displays version information.
--gui Running it via GUI.
关于c++ - 带有可选图形用户界面的 Qt 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23844867/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!