欢迎来到天天文库
浏览记录
ID:40879678
大小:489.00 KB
页数:25页
时间:2019-08-09
《给初学Qt者的小TIP》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、给初学Qt者的小TIP1、Hello,Qt!我们以一个非常简单的Qt程序开始Qt的学习。我们首先一行行的分析代码,然后我们将会看到怎样编译和运行这个程序。1#include2#include3intmain(intargc,char*argv[])4{5QApplicationapp(argc,argv);6QLabel*label=newQLabel("HelloQt!");7label->show();8returnapp.exec();9}第1行和第2行
2、包含了两个类的定义:QApplication和QLabel。对于每一个Qt的类,都会有一个同名的头文件,头文件里包含了这个类的定义。因此,你如果在程序中使用了一个类的对象,那么在程序中就必须包括这个头文件。第3行是程序的入口。几乎在使用Qt的所有情况下,main()函数只需要在把控制权转交给Qt库之前执行一些初始化,然后Qt库通过事件来向程序告知用户的行为。argc是命令行变量的数量,argv是命令行变量的数组。这是一个C/C++特征。它不是Qt专有的,无论如何Qt需要处理这些变量第5行定义了一个QAp
3、plication对象App。QApplication管理了各种各样的应用程序的广泛资源,比如默认的字体和光标。App的创建需要argc和argv是因为Qt支持一些自己的命令行参数。在每一个使用Qt的应用程序中都必须使用一个QApplication对象,并且在任何Qt的窗口系统部件被使用之前创建此对象是必须的。App在这里被创建并且处理后面的命令行变量(比如在X窗口下的-display)。请注意,所有被Qt识别的命令行参数都会从argv中被移除(并且argc也因此而减少)。第6行创建了一个QLabel窗
4、口部件(widget),用来显示“Hello,Qt!”。在Qt和Unix的术语中,一个窗口部件就是用户界面中一个可见的元素,它相当于Windows术语中的“容器”加上“控制器”。按钮(Button)、菜单(menu)、滚动条(scrollbars)和框架(frame)都是窗口部件的例子。窗口部件可以包含其它的窗口部件。例如,一个应用程序界面通常就是一个包含了QMenuBar,一些QToolBar,一个QStatusBar和其它的一些部件的窗口。绝大多数应用程序使用一个QMainWindow或者一个QDi
5、alog作为程序界面,但是Qt允许任何窗口部件成为窗口。在这个例子中,QLabel窗口部件就是作为应用程序主窗口的。第7行使我们创建的QLabel可见。当窗口部件被创建的时候,它总是隐藏的,必须调用show()来使它可见。通过这个特点我们可以在显示这些窗口部件之前定制它们,这样就不会出现闪烁的情况。第8行就是main()将控制权交给Qt。在这里,程序进入了事件循环。事件循环是一种stand-by的模式,程序会等待用户的动作(比如按下鼠标或者是键盘)。用户的动作将会产生程序可以做出反应的事件(也被称为“消
6、息”)。程序对这些事件的反应通常是执行一个或几个函数。为了简单起见,我们没有在main()函数的结尾处调用delete来删除QLabel对象。这种内存泄露是无害的,因为像这样的小程序,在结束时操作系统将会释放程序占用的内存堆。下面我们来编译这个程序。建立一个名为hello的目录,在目录下建立一个名为hello.cpp的c++源文件,将上面的代码写入文件中。运行“开始à程序àQtbyTrolltechàQtCommandPrompt”。在命令行模式下,切换目录到hello下,然后输入命令:qmake–pr
7、oject。这个命令将产生一个依赖于工作平台的工程文件(hello.pro)。再输入命令:qmakehello.pro。这个命令通过工程文件产生一个可以在特定工作平台上使用的makefile。最后输入命令:make来产生应用程序。运行这个程序,可以得到如下的程序界面。Qt也支持XML。我们可以把程序的第6行替换成下面的语句:QLabel*label=newQLabel("
8、简单的HTML风格。如下图:2、调用退出第二个例子展示了如何使应用程序对用户的动作进行响应。这个应用程序包括了一个按钮,用户可以点击这个按钮来退出程序。程序代码与上一个程序非常相似,不同之处在于我们使用了一个QPushButton来代替QLabel作为我们的主窗口,并且我们将一个用户动作(点击一个按钮)和一些程序代码连接起来。1#include2#include3intmain(inta
此文档下载收益归作者所有