第三章 用SDK编译出第一个在Linux下的软件界面
先创建一个工程目录“mkdir PRoject1”,进入目录,创建main.cpp文件,编写代码如下:
代码内容暂时可以先不理解,先让程序跑起来再说。
接下来执行“qmake -project”来生成工程文件(project1.pro),然后再执行“qmake”则会根据工程文件生产Makefie,最后执行“make”编译就可以生成执行文件”project1“。经过这几个指令的执行,现在输入”ls“看一下工程目录project1的内容。
生成的执行文件名和文件目录名一样。执行这个project1程序,诞生在我们手上第一个在Linux系统里面运行的软件界面就呈现在面前了。
简单解释下代码:
main.cpp:
第1行:包含头文件QtGui;
第3行:是main函数,带两个形参;
第5行:用main传递的命令行参数(argc, argv)构造一个Qapplication类的对象app,app对象负责启动Qt GUI程序的主事件循环,它从窗口系统接收并分发事件到具体的控件对象;
第6行:创建一个基础窗体对象QWidget;
第7行:使QWidget窗体显示出来;
第8行:通过QApplication类的exec()函数调用,使应用程序进入主事件循环并等待,直到exit()被调用或者主窗口部件被销毁,app->exec()调用之后,就可以开始事件处理,主事件循环从窗口系统接收事件并分派给应用程序窗口部件,至此用户界面程序才可以正常和用户交互。project1.pro:
第5行:TEMPLATE = app指明了依据该工程文件建立一个应用程序的Makefile,编译出一个可执行的应用程序;
第6行:TARGET可以指定生成目标的名字,不指定则默认生成和工程名一样的执行文件;
第7行:DEPENDPATH指定依赖路径;
第8行:INCLUDEPATH指定头文件路径;
第11行:是源码列表。
好了,简单解释到这。明确一下Qt的程序结构,在一个Qt源代码中,以下两条语句必不可少!
QApplication app(argc, argv);
……
return app.exec();
新闻热点
疑难解答