<b>Qt学习之路(3):Hello,world!(续)</b>[VC/C++编程]
本文“<b>Qt学习之路(3):Hello,world!(续)</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
下面来逐行注释一下前面的那个Hello, world!程序,固然很简单,但却可以对Qt程序的构造有一个清楚的熟习.目前再把代码贴过来:
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel *label = new QLabel("Hello, world!");
label->show();
return app.exec();
}
第1行和第2行就是需求引入的头文件.和普通的C++程序没有什么两样,假如要利用某个组件,就必必要引入呼应的头文件,这近似于Java的import机制.值得阐明的是,Qt中头文件和类名是一致的.也就是说,假如你要利用某个类的话,它的类名就是它的头文件名.
第3行是空行 :)
第4行是main函数函数头.这与普通的C++程序没有什么两样,学过C++的都懂得.因此你可以看到,实际上,Qt完好通过普通的main函数进入,这差别于wxWidgets,因为wxWidgets的Hello, world需求你担当它的一个wxApp类,并覆盖它的wxApp::OnInit办法,系统会自动将OnInit编译成进口函数.不过在Qt中,就不需求这些了.
第5行,噢噢,大括号…
第6行,成立一个QApplication对象.这个对象用于管理利用程序级别的资源.QApplication的构造函数要求两个参数,辨别来自main的那两个参数,因此,Qt在一定程度上是支持号令行参数的.
第7行,成立一个QLabel对象,并且可以显示Hello, world!字符串.和其他库的Label控件一样,这是用来显示文本的.在Qt中,这被称为一个widget(翻译出来是小东西,不过这个翻译并不好…),它平等于Windows技术里面的控件(controls)和容器(containers).也就是说,widget可以安排其他的 widget,就像Swing的组件.大大都Qt程序利用QMainWindow大概QDialog作为顶级组件,但Qt并不强迫要求这点.在这个例子中,顶级组件就是一个QLabel.
第8行,使这个label可见.组件成立出来之后普通是不可见的,要求我们手动的使它们可见.这样,在成立出组建之后我们便可以对它们举行各种定制,以避免呈现之后在屏幕上面会有闪耀.
第9行,将利用程序的掌握权移交给Qt.这时,程序的事件循环就开始了,也就是说,这时可以呼应你发出的各种事件了.这近似于gtk+最后的一行gtk_main().
第10行,大括号……程序完毕了.
注意,我们并没有利用delete去删除成立的QLabel,因为在程序完毕后操作系统会回收这个空间——这只是因为这个QLabel占用的内存对比小,但有时刻这么做会惹起麻烦的,分外是在大程序中,因此必须当心.
好了,程序注释完了.按照正常的流程,下面应当编译.前面也提过,Qt的编译不能利用普通的make,而必须先利用qmake举行预编译.所以,第一步应当是在工程目录下利用
qmake -project
号令成立.pro文件(比方说是叫helloworld.pro).然后再在.pro文件目录下利用
qmake helloworld.pro (make)
大概
qmake -tp vc helloworld.pro (nmake)
生成makefile,然后才能调用make大概是nmake举行编译.不过因为我们利用的是IDE,所以这些步骤就不需求我们手动完成了.
值得阐明一点的是,这个qmake可以生成尺度的makefile文件,因此完好可以操纵qmake自动生成makefile——这是题外话.
好了,下面改正一下源代码,把QLabel的成立一句改成
QLabel *label = new QLabel("<h2><font color='red'>Hello</font>, world!<h2>");
运行一下:
同Swing的JLabel一样,Qt也是支持HTML解析的.
好了,这个Hello, world就说到这里!明确一下Qt的程序构造,在一个Qt源代码中,一下两条语句是必不可少的:
QApplication app(argc, argv);
//...
return app.exec();
出处: http://devbean.blog.51cto.com/448512/194137
以上是“<b>Qt学习之路(3):Hello,world!(续)</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |