QApplication::QApplication ( int & argc, char ** argv )
初始化窗口系统,构造应用程序对象 使用argv中的argc命令行参数。
警告:argc和argv引用的数据必须保持有效 QApplication对象的整个生命周期。 此外,argc必须是 大于零且argv必须至少包含一个有效字符 字符串。
从此链接:http://doc.qt.io/qt-4.8/qapplication.html#QApplication
可执行文件的参数是什么?有什么例子吗?
我尝试指定类似的内容:
anisha@linux-dopx:~/Desktop/notes/qt> make
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../qtsdk-2010.05/qt/mkspecs/linux-g++-64 -I. -I../../../qtsdk-2010.05/qt/include/QtCore -I../../../qtsdk-2010.05/qt/include/QtGui -I../../../qtsdk-2010.05/qt/include -I. -I. -o widgets.o widgets.cpp
g++ -m64 -Wl,-O1 -Wl,-rpath,/home/anisha/qtsdk-2010.05/qt/lib -o qt widgets.o -L/home/anisha/qtsdk-2010.05/qt/lib -lQtGui -L/home/anisha/qtsdk-2010.05/qt/lib -L/usr/X11R6/lib64 -lQtCore -lpthread
anisha@linux-dopx:~/Desktop/notes/qt> ./qt 2 f g
anisha@linux-dopx:~/Desktop/notes/qt>
没有发生任何特殊的,也不知道我在做什么或我应该做什么。
编辑1:我尝试./qt -style=windows
的代码。
#include <QtGui>
int main (int argc, char *argv[])
{
QApplication app (argc, argv);
QWidget objQWidget;
objQWidget.show ();
objQWidget.resize (320, 240);
objQWidget.setWindowTitle ("Text to be shown on the title bar\n");
// Adding a "child" widget.
QPushButton *objQPushButton = new QPushButton ("Text to be shown on the button", &objQWidget);
objQPushButton->move (100, 100);
objQPushButton->show ();
return app.exec ();
}
答案 0 :(得分:4)
继续阅读该文档。那里列出了QApplication
行为标志的集合。
试着举例:
./qt -style=windows
QApplication
没有处理的论点只是孤立无援。它处理的那些被删除(这就是为什么该函数采用非const参数)。
答案 1 :(得分:4)
稍后可以通过静态方法来访问构造函数中传递的参数
QStringList QCoreApplication::arguments()
。这样,命令行参数可以在代码中的任何位置处理。
答案 2 :(得分:1)
有关使用QCoreApplication的建议仅建议您拥有控制台应用程序。如果您正在使用QApplication,并且想要从QWidget内部访问命令行参数,则可以使用全局指针qApp来执行此操作:
Here您可以从诺基亚找到文档,或者从qt-project.org找到here。在Qt Creator的文档浏览器中,我找不到它,所以它最多不容易访问。
所以你可以找到:
int my_argc = qApp-&gt; arguments()。count();
QString my_argv_0 = qApp-&gt; arguments.at(0);
...
等等。
我知道这个问题已经过时了,但我花了一些时间在我的主窗口内找到一种方法,所以希望这有助于其他人。