首页 理论教育ARM嵌入式系统原理与应用:源代码完善与解读

ARM嵌入式系统原理与应用:源代码完善与解读

【摘要】:编译完成程序后,在工程可执行程序所在文件夹下双击hello程序出现Qt版Hello World程序界面,整个Qt应用程序窗体都被一个按钮覆盖,这是程序第13行设置窗体主控件的结果。用户单击按钮后没有任何反映,这是由于没有添加QPushButton的处理函数,系统默认不做任何处理。文本界面风格的Hello World程序修改后的Hello World程序上述程序实例展示了QLabel组件的功能。Qt支持字符串使用HTML语法格式描述,Qt会解释HTML语法的含义并且显示正确的结果。

qmake是Qt库提供的一个工程管理工具。在本例中,使用“-project”参数后,qmake会在当前目录下搜索所有的代码文件,分析后生成Qt工程文件hello_qt.pro,该文件描述了Qt工程的默认结构。

生成工程文件后,直接运行qmake程序,会根据当前目录的工程文件生成Makefile工程文件供make程序使用。因此,执行完上面的命令后查看当前目录:

Makefilehello hello.pro hello_qt.cpphello_qt.o

从目录文件列表看出,已经生成了Qt工程文件hello_qt.pro、mingw32-make使用的工程文件Makefile,以及可执行文件hello。

下面分析一下hello_qt.cpp程序。在程序的开头包含了两个头文件qapplication.h和qpushbutton.h,这两个文件每个文件中都包含了一个类,分别用于管理一个窗体应用程序和按钮。Qt提供了许多的图形界面组件,在使用不同的组件之前需要包含组件的头文件。在所有的Qt应用程序中,都必须有一个QApplication类的对象。QApplication管理应用程序用到的各种资源,如光标和字体等。QPushButton是一个按钮控件类,与Windows系统的控件类似,提供了鼠标移动、按下按钮等操作,以及其他属性。可以通过设置QPush-Button的属性改变按钮的外观,也可以向QPushButton添加信号响应函数处理用户的动作。

与其他的应用程序一样,main()函数是Qt应用程序的入口。在Qt应用程序中,需要加入main()函数的命令行参数供QApplication类使用。QApplication提供了许多默认的函数,如设置一些QT初始化参数等,可以通过Qt使用手册查询参数的使用方法。

程序第11行调用QPushButton的resize()成员函数重新设置了按钮的大小。在一个Qt应用程序中,需要设置一个主窗口控件,当主窗口控件退出后,整个Qt应用程序也就退出了。(www.chuimin.cn)

当新建一个控件后,默认是不可见的,因此程序第13行调用QPushButton控件的show()函数在屏幕上把控件显示出来。在程序第14行调用QApplication类的exec()函数把main()函数的控制权交给Qt,当应用程序退出后,exec()函数随之退出。在exec()函数中,Qt接收用户从界面或者系统发送来的各种事件,交给用户编写的控件处理函数或者Qt自身的处理函数处理。

编译完成程序后,在工程可执行程序所在文件夹下双击hello程序出现Qt版Hello World程序界面,整个Qt应用程序窗体都被一个按钮覆盖,这是程序第13行设置窗体主控件的结果。用户单击按钮后没有任何反映,这是由于没有添加QPushButton的处理函数,系统默认不做任何处理。后面的例子将介绍如何处理控件的事件响应。

【例10.2】文本界面风格的Hello World程序

修改后的Hello World程序

上述程序实例展示了QLabel组件的功能。程序第7行定义了一个QLabel标签对象,标签的文字使用了HTML语法格式。Qt支持字符串使用HTML语法格式描述,Qt会解释HTML语法的含义并且显示正确的结果。