Я хочу отобразить аргумент командной строки, предоставленный пользователем для приложения, например:
./ToolOne --name
Когда я пытаюсь получить аргумент от объекта QApplication в Qt 5.3.2, все работает.Однако после использования Qt 5.6.1 или 5.11.3 все работает, кроме опции
--icon
. Работает любое другое слово, независимо от того, -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();
}
--icon
аргумент просто исчезает вКонструктор приложений.Стоит отметить, что когда я использую QCoreApplication, он отлично работает во всех системах.
Я пытался найти какую-либо специальную обработку в Qt или любом отчете об ошибке, но безрезультатно.Если это имеет значение, я проверил:
- CentOS 6 с Qt 5.3.2 и gcc: 4.8.2 ( работает )
- RedHat 6 с Qt 5.3.2 и gcc: 4.7.2 ( работает )
- RedHat 6 с Qt 5.6.1 и gcc 4.7.1 (не работает)
- RedHat 6 с Qt 5.6.1 и gcc 4.9.1 (не удается)
- CentOS 7 с Qt 5.9.2 и gcc 4.8.5 (не работает)
- RedHat 7 с Qt 5.3.2 и gcc 4.8.5 ( работает )
- Fedora 29 с Qt 5.11.3 и gcc 8.2.1 (не работает)
Ссылка с небольшим примером: https://drive.google.com/drive/folders/1TGJIbzTkotnHbymTC3xDa-0PFAfG1w4n?usp=sharing