我想显示用户为应用程序提供的命令行参数fe:
./ToolOne --name
Run Code Online (Sandbox Code Playgroud)
当我试图从Qt 5.3.2中的QApplication对象获取参数时,一切正常.但是,在使用Qt 5.6.1或5.11.3之后,除了选项外,一切正常
--icon
Run Code Online (Sandbox Code Playgroud)
任何其他字工,无论-i或--ico.除了--icon...不知何故,当这个参数被QApplication()消耗时,它就会消失.
我的主要功能:
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QStringList arguments = a.arguments();
// If argv has --icon, under Qt >= 5.6, arguments list will NOT contain icon
MainWindow w( arguments.join(" ") );
w.show();
return a.exec();
}
Run Code Online (Sandbox Code Playgroud)
--icon参数只是在QApplication构造函数中消失了.值得一提的是,当我使用QCoreApplication时,它在所有系统下都能完美运行.
我试图在Qt或任何错误报告中找到任何特殊处理,但没有结果.如果这很重要我已经检查过:
链接小例子:https: //drive.google.com/drive/folders/1TGJIbzTkotnHbymTC3xDa-0PFAfG1w4n?usp=sharing
看起来-icon是同义词-qwindowicon,通过从Qt的5.5这段代码:
} else if (arg == "-qwindowicon" || (isXcb && arg == "-icon")) {
if (++i < argc) {
icon = QString::fromLocal8Bit(argv[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
这就是使用Xcb时它被删除的原因.我有预感(没时间验证),对于使用Xcb的应用程序来说它是一些或多或少的标准命令行arg,这就是为什么在使用Xcb时它被Qt解析的原因.
这个整个图标命令行选项似乎已添加到5.4中,深入了解版本历史记录.该源文件的Qt 5.3版本无法处理它.
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |