QT入门教程范文

上传人:亦明 文档编号:141882803 上传时间:2020-08-13 格式:DOC 页数:30 大小:291.03KB
返回 下载 相关 举报
QT入门教程范文_第1页
第1页 / 共30页
QT入门教程范文_第2页
第2页 / 共30页
QT入门教程范文_第3页
第3页 / 共30页
QT入门教程范文_第4页
第4页 / 共30页
QT入门教程范文_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《QT入门教程范文》由会员分享,可在线阅读,更多相关《QT入门教程范文(30页珍藏版)》请在金锄头文库上搜索。

1、QT入门教程范文 Qt教程一第一章Hello,World!第一个程序是一个简单的Hello World例子。 它只包含你建立和运行Qt应用程序所需要的最少的代码。 上面的图片是这个程序的快照。 /*Qt教程一-2*/#include#includeint main(int argc,char*argv)QApplication a(argc,argv);QPushButton hello(Hello world!,0);hello.resize(100,30);a.setMainWidget(&hello);hello.show();return a.exec();一行一行地解说#includ

2、e这一行包含了QApplication类的定义。 在每一个使用Qt的应用程序中都必须使用一个QApplication对象。 QApplication管理了各种各样的应用程序的广泛资源,比如默认的字体和光标。 #include这一行包含了QPushButton类的定义。 参考文档的文件的最上部分提到了使用哪个类就必须包含哪个头文件的说明。 QPushButton是一个经典的图形用户界面按钮,用户可以按下去,也可以放开。 它管理自己的观感,就像其它每一个QWidget。 一个窗口部件就是一个可以处理用户输入和绘制图形的用户界面对象。 程序员可以改变它的全部观感和它的许多主要的属性(比如颜色),还有

3、这个窗口部件的内容。 一个QPushButton可以显示一段文本或者一个QPixmap。 int main(int argc,char*argv)main()函数是程序的入口。 几乎在使用Qt的所有情况下,main()只需要在把控制转交给Qt库之前执行一些初始化,然后Qt库通过事件来向程序告知用户的行为。 argc是命令行变量的数量,argv是命令行变量的数组。 这是一个C/C+特征。 它不是Qt专有的,无论如何Qt需要处理这些变量(请看下面)。 QApplication a(argc,argv);a是这个程序的QApplication。 它在这里被创建并且处理这些命令行变量(比如在X窗口下的

4、-display)。 请注意,所有被Qt识别的命令行参数都会从argv中被移除(并且argc也因此而减少)。 关于细节请看QApplication:argv()文档。 注意在任何Qt的窗口系统部件被使用之前创建QApplication对象是必须的。 QPushButton hello(Hello world!,0);这里,在QApplication之后,接着的是第一个窗口系统代码一个按钮被创建了。 这个按钮被设置成显示“Hello world!”并且它自己构成了一个窗口(因为在构造函数指定0为它的父窗口,在这个父窗口中按钮被定位)。 hello.resize(100,30);这个按酒被设置成1

5、00像素宽,30像素高(加上窗口系统边框)。 在这种情况下,我们不用考虑按钮的位置,并且我们接受默认值。 a.setMainWidget(&hello);这个按钮被选为这个应用程序的主窗口部件。 如果用户关闭了主窗口部件,应用程序就退出了。 你不用必须设置一个主窗口部件,但绝大多数程序都有一个。 hello.show();当你创建一个窗口部件的时候,它是不可见的。 你必须调用show()来使它变为可见的。 return a.exec();这里就是main()把控制转交给Qt,并且当应用程序退出的时候exec()就会返回。 在exec()中,Qt接受并处理用户和系统的事件并且把它们传递给适当的窗

6、口部件。 你现在可以试着编译和运行这个程序了。 编译编译一个C+应用程序,你需要创建一个makefile。 创建一个Qt的makefile的最容易的方法是使用Qt提供的连编工具qmake。 如果你已经把main.cpp保存到它自己的目录了,你所要做的就是这些qmake-project qmake第一个命令调用qmake来生成一个.pro(项目)文件。 第二个命令根据这个项目文件来生成一个(系统相关的)makefile。 你现在可以输入make(或者nmake,如果你使用Visual Studio),然后运行你的第一个Qt应用程序!行为当你运行它的时候,你就会看到一个被单一按钮充满的小窗口,在它

7、上面你可以读到著名的词Hellow World!练习试着改变窗口的大小。 按下按钮。 如果你在X窗口下运行,使用-geometry选项(比如,-geometry100x200+10+20)来运行这个程序。 现在你可以进行第二章了。 Qt教程一第二章调用退出你已经在第一章中创建了一个窗口,我们现在使这个应用程序在用户让它退出的时候退出。 我们也会使用一个比默认字体更好的一个字体。 /*Qt教程一-2*/#include#include#includeint main(int argc,char*argv)QApplication a(argc,argv);QPushButton quit(Qui

8、t,0);quit.resize(75,30);quit.setFont(QFont(Times,18,QFont:Bold);QObject:connect(&quit,SIGNAL(clicked(),&a,SLOT(quit();a.setMainWidget(&quit);quit.show();return a.exec();一行一行地解说#include因为这个程序使用了QFont,所以它需要包含qfont.h。 Qt的字体提取和X中提供的可怕的字体提取大为不同,字体的载入和使用都已经被高度优化了。 QPushButton quit(Quit,0);这时,按钮显示“Quit”,确切

9、的说这就是当用户点击这个按钮时程序所要做的。 这不是一个巧合。 因为这个按钮是一个顶层窗口,我们还是把0作为它的父对象。 quit.resize(75,30);我们给这个按钮选择了另外一个大小,因为这个文本比“Hello world!”小一些。 我们也可以使用QFontMetrics来设置正确的大小。 quit.setFont(QFont(Times,18,QFont:Bold);这里我们给这个按钮选择了一个新字体,Times字体中的18点加粗字体。 注意在这里我们调用了这个字体。 你也可以改变整个应用程序的默认字体(使用QApplication:setFont())。 QObject:con

10、nect(&quit,SIGNAL(clicked(),&a,SLOT(quit();connect也许是Qt中最重要的特征了。 注意connect()是QObject中的一个静态函数。 不要把这个函数和socket库中的connect()搞混了。 这一行在两个Qt对象(直接或间接继承QObject对象的对象)中建立了一种单向的连接。 每一个Qt对象都有signals(发送消息)和slots(接收消息)。 所有窗口部件都是Qt对象。 它们继承QWidget,而QWidget继承QObject。 这里quit的clicked()信号和a的quit()槽连接起来了,所以当这个按钮被按下的时候,这个

11、程序就退出了。 信号和槽文档详细描述了这一主题。 行为当你运行这个程序的时候,你会看到这个窗口比第一章中的那个小一些,并且被一个更小的按钮充满。 (请看编译来学习如何创建一个makefile和连编应用程序。 )练习试着改变窗口的大小。 按下按钮。 注意!connect()看起来会有一些不同。 是不是在QPushButton中还有其它的你可以连接到quit的信号?提示QPushButton继承了QButton的绝大多数行为。 现在你可以进行第三章了。 Qt教程一第三章家庭价值这个例子演示了如何创建一个父窗口部件和子窗口部件。 我们将会保持这个程序的简单性,并且只使用一个单一的父窗口部件和一个独立

12、的子窗口部件。 /*Qt教程一-3*/#include#include#include#includeint main(int argc,char*argv)QApplication a(argc,argv);QVBox box;box.resize(200,120);QPushButton quit(Quit,&box);quit.setFont(QFont(Times,18,QFont:Bold);QObject:connect(&quit,SIGNAL(clicked(),&a,SLOT(quit();a.setMainWidget(&box);box.show();return a.e

13、xec();一行一行地解说#include我们添加了一个头文件qvbox.h用来获得我们要使用的布局类。 QVBox box;这里我们简单地创建了一个垂直的盒子容器。 QVBox把它的子窗口部件排成一个垂直的行,一个在其它的上面,根据每一个子窗口部件的QWidget:sizePolicy()来安排空间。 box.resize(200,120);我们它的高设置为120像素,宽为200像素。 QPushButton quit(Quit,&box);子窗口部件产生了。 QPushButton通过一个文本(“text”)和一个父窗口部件(box)生成的。 子窗口部件总是放在它的父窗口部件的最顶端。 当它被显示的时候,它被父窗口部件的边界挡住了一部分。 父窗口部件,QVBox,自动地把这个子窗口部件添加到它的盒子中央。 因为没有其它的东西被添加了,这个按钮就获得了父窗口部件的所有空间。 box.show();当父窗口部件被显示的时候,它会调用所有子窗口部件的显示函数(除非在这些子窗口部件中你已经明确地使用QWidget:hide())。 行为这个按钮不再充满整个窗口部件。 相反,它获得了一个“自然的”大小。 这是

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号