没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Qt 教程一 十四步
这个教程介绍了使用 Qt 工具包进行图形用户界面编程。它没有包括所有的
东西:强调的是教授一种图形用户界面编程的编程思想,并且介绍 Qt 的特征也
是必需的。一些通常情况下使用的特征在这个教程里没有用到。
第一章:Hello, World!
第一个程序是一个简单的
例子。它只包含
你建立和运行 应用程序所需要的最少的代码。上面的图片是这个程序的快照。
!"
#$%&'%("
)*((+("
,-"
&"
."
/
一行一行地解说
这一行包含了 QApplication 类的定义。在每一个使用 Qt 的应用程序中都必须使
用一个 QApplication 对象。QApplication 管理了各种各样的应用程序的广泛资源,
比如默认的字体和光标。
这一行包含了 QPushButton 类的定义。参考文档的文件的最上部分提到了使用
哪个类就必须包含哪个头文件的说明。
QPushButton 是一个经典的图形用户界面按钮,用户可以按下去,也可以放开。
它管理自己的观感,就像其它每一个 QWidget。一个窗口部件就是一个可以处
理用户输入和绘制图形的用户界面对象。程序员可以改变它的全部观感和它的
许多主要的属性(比如颜色),还有这个窗口部件的内容。一个 QPushButton
可以显示一段文本或者一个 QPixmap。
main()函数是程序的入口。几乎在使用 Qt 的所有情况下,main()只需要在把控
制转交给 Qt 库之前执行一些初始化,然后 Qt 库通过事件来向程序告知用户的
行为。
是命令行变量的数量, 是命令行变量的数组。这是一个 C/C++特征。
它不是 Qt 专有的,无论如何 Qt 需要处理这些变量(请看下面)。
!"
是这个程序的 QApplication。它在这里被创建并且处理这些命令行变量(比如
在 X 窗口下的-display)。请注意,所有被 Qt 识别的命令行参数都会从 中
被移除(并且 也因此而减少)。关于细节请看 QApplication::argv()文档。
注意:在任何 Qt 的窗口系统部件被使用之前创建 QApplication 对象是必须的。
#$%&'%("
这里,在 QApplication
之后
,接着的是第一个窗口系统代码:一个按钮被创建
了。
这个按钮被设置成显示“Hello world!”并且它自己构成了一个窗口(因为在构造
函数指定 0 为它的父窗口,在这个父窗口中按钮被定位)。
)*((+("
这个按酒被设置成 100 像素宽,30 像素高(加上窗口系统边框)。在这种情况
下,我们不用考虑按钮的位置,并且我们接受默认值。
,-"
这个按钮被选为这个应用程序的主窗口部件。如果用户关闭了主窗口部件,应
用程序就退出了。 你不用必须设置一个主窗口部件,但绝大多数程序都有一个。
&"
当你创建一个窗口部件的时候,它是不可见的。你必须调用 show()来使它变为
可见的。
."
这里就是 main()把控制转交给 Qt,并且当应用程序退出的时候 exec()就会返回。
在 exec()中,Qt 接受并处理用户和系统的事件并且把它们传递给适当的窗口部
件。
/
你现在可以试着编译和运行这个程序了。
编译
编译一个 C++应用程序,你需要创建一个 makefile。创建一个 Qt 的 makefile 的
最容易的方法是使用 Qt 提供的连编工具 qmake。如果你已经把 保存
到它自己的目录了,你所要做的就是这些:
012
0
第一个命令调用 qmake 来生成一个(项目)文件。第二个命令根据这个项
目文件来生成一个(系统相关的)makefile。你现在可以输入 0(或者
0,如果你使用 Visual Studio),然后运行你的第一个 Qt 应用程序!
行为
当你运行它的时候,你就会看到一个被单一按钮充满的小窗口,在它上面你可
以读到著名的词:Hellow World!
第二章:调用退出
你已经在第一章中创建了一个窗
口,我们现在使这个应用程序在
用户让它退出的时候退出。 我们也会使用一个比默认字体更好的一个字体。
3
!"
#$%%("
)45+("
66%7%*8699$"
:299-;<=>!?0-;?:7"
,-"
&"
."
/
一行一行地解说
3
因为这个程序使用了 QFont,所以它需要包含 qfont.h。Qt 的字体提取和 X 中提
供的可怕的字体提取大为不同,字体的载入和使用都已经被高度优化了。
#$%%("
这时,按钮显示“Quit”,确切的说这就是当用户点击这个按钮时程序所要做的。
这不是一个巧合。因为这个按钮是一个顶层窗口,我们还是把 0 作为它的父对
象。
)45+("
我们给这个按钮选择了另外一个大小,因为这个文本比“Hello world!”小一些。
我们也可以使用 QFontMetrics 来设置正确的大小。
66%7%*8699$"
这里我们给这个按钮选择了一个新字体,Times 字体中的 18 点加粗字体。注意
在这里我们调用了这个字体。
你也可以改变整个应用程序的默认字体(使用 QApplication::setFont())。
:299-;<=>!?0-;?:7"
connect 也许是 Qt 中
最重要
的特征了。注意 connect()是 QObject 中的一个静态函
数。不要把这个函数和 socket 库中的 connect()搞混了。
这一行在两个 Qt 对象(直接或间接继承 QObject 对象的对象)中建立了一种单
向的连接。每一个 Qt 对象都有 (发送消息)和 (接收消息)。所
有窗口部件都是 Qt 对象。它们继承 QWidget,而 QWidget 继承 QObject。
这里 quit 的 clicked()信号和 a 的 quit()槽连接起来了,所以当这个按钮被按下的
时候,这个程序就退出了。
信号和槽文档详细描述了这一主题。
行为
当你运行这个程序的时候,你会看到这个窗口比第一章中的那个小一些,并且
被一个更小的按钮充满。
第三章:家庭价值
这个例子演示了如何创
建一个父窗口部件和子
窗口部件。我们将会保
持这个程序的简单性,
并且只使用一个单一的
父窗口部件和一个独立
的子窗口部件。
3
.
!"
@$.."
.)A((*A("
#$%%-."
66%7%*8699$"
:299-;<=>!?0-;?:7"
,-."
.&"
."
/
一行一行地解说
.
我们添加了一个头文件 qvbox.h 用来获得我们要使用的布局类。
@$.."
这里我们简单地创建了一个垂直的盒子容器。QVBox 把它的子窗口部件排成一
个垂直的行,一个在其它的上面,根据每一个子窗口部件的
QWidget::sizePolicy()来安排空间。
.)A((*A("
我们它的高设置为 120 像素,宽为 200 像素。
#$%%-."
子窗口部件产生了。
QPushButton 通过一个文本(“text”)和一个父窗口部件(box)生成的。子窗口
部件总是放在它的父窗口部件的最顶端。当它被显示的时候,它被父窗口部件
的边界挡住了一部分。
父窗口部件,QVBox,自动地把这个子窗口部件添加到它的盒子中央。因为没
有其它的东西被添加了,这个按钮就获得了父窗口部件的所有空间。
.&"
当父窗口部件被显示的时候,它会调用所有子窗口部件的显示函数(除非在这
些子窗口部件中你已经明确地使用 QWidget::hide())。
行为
这个按钮不再充满整个窗口部件。相反,它获得了一个“自然的”大小。这是因
为现在的这个新的顶层窗口,使用了按钮的大小提示和大小变化策略来设置这
个按钮的大小和位置。(请看 QWidget::sizeHint()和 QWidget::setSizePolicy()来
获得关于这几个函数的更详细的信息。)
第四章:使用窗口部件
这个例子显示了如何创
建一个你自己的窗口部
件,描述如何控制一个
窗口部件的最小大小和
最大大小,并且介绍了
窗口部件的名称。
3
,B9
9
,BC(C("
剩余63页未读,继续阅读
vipyjb
- 粉丝: 55
- 资源: 83
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页