gpt4 book ai didi

c++ - 在 Qt 应用程序中检索命令行参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:15 24 4
gpt4 key购买 nike

我想在 Unix 命令提示符下做一些类似的事情:

./countHats("red")   or 
./countHats "red"

然后程序运行并计算红帽子数。

我该怎么做?

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
w.setGeometry(QRect(QPoint(100,100), QSize(1000,500)));

CHat *hat = new CHat();
hat->color(argv[0]);//"red" ????

return a.exec();
}

最佳答案

你最好使用QCoreApplication::arguments

基本上,您需要像这样使用它:

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
w.setGeometry(QRect(QPoint(100,100), QSize(1000,500)));

CHat *hat = new CHat();
hat->color(QCoreApplication::arguments().at(1));

return a.exec();
}

然后调用以下命令:./countHats red。在这种特殊情况下不需要引号,也不需要括号,尽管它也适用于引号。

如果您有一个包含空格等的参数,您将需要引号,对于非常简单的颜色则不是这种情况,而且无论如何,您将需要颜色代码管理。


PS,我们这样做的原因是,您应该为您的 setter 使用更好的名称,例如 setColorcolor() 通常用于获取颜色值,而不是设置颜色值,但现在有点离题了。我也只是想帮助您指出这一点。

此外,您似乎没有删除帽子,它也不参与 Qt 父/子关系以自动删除。您也需要改进这一点。

但是请注意,我和 David Faure 一直在开发一个 QCommandLineParser 类,希望您可以从 Qt5.2 开始使用它。现在正在 Gerrit 上审查更改以进行集成。

关于c++ - 在 Qt 应用程序中检索命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18280733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com