注:本文参考(译)自Qt帮助文档, Qt Assistant, Qt4.4:Qt Tutorial 1 - Hello World! 和其他所有编程入门一样,第一个程序都是简单的 hello, world。本程序是一个最小的Qt程序,仅包含了启动和运行部分。下面的图片是程序运行的屏幕截图。
下面是本程序的完整源代码:
你现在可以尝试编译、运行这个程序. 这个例子存在于 Qt 的 examples/tutorials/tutorial 目录下. 将会在你编译Qt 的时候自动被编译.
如果你是动手自己写的代码, 你需要按照以下指令操作: 要编译 C++ 应用程序,你需要创建一个 makefile 文件. 最简单的创建 makefile 方法就是使用 Qt 自带的 qmake 编译工具. 如果你已经将 main.cpp 文件保存于一个空目录下,你所需要做的如下:
后记: 平时自己看也就罢了,没想到要翻译写出来既然如此困难! 感觉词语不通顺,目前国内 Qt 相关的中文资料较少,很多人又不愿意看 英文的, 举手之劳,希望既能够自己练练,也能够给初学者或者希望学习者提供点资料 :)
1: #include <QApplication>
2: #include <QPushButton>
3: int main(int argc, char *argv[])
4: {
5: QApplication app(argc, argv);
6: QPushButton hello("Hello world!");
7: hello.show();
8: return app.exec();
9: }
逐行分析代码:
1: #include <QApplication>
本行代码包含了 class QApplication 的定义. 每个Qt GUI 应用程序都必须正确的指定一个QApplication 对象. QApplicaton 负责管理程序范围内的资源,如默认的字体 和 鼠标指针等.
2: #include <QPushButton>
这行代码包含了 class QPushButton 的定义. 每个类都是Qt 公有 API 的一部分, 被定义在同名头文件中. QPushButton 是一个用户可以按下/松开的 GUI 按钮. 它自己管理自己的外观和效果, 和其他所有的 QWidget 一样. 一个 widget 就是一个能够处理用户输入、绘图的用户接口对象. 程序员可以修改它们的整体外观、效果和许多辅助属性(如颜色) 以及 widget 的内容. 一个 QPushButton 可以显示文本 或者 一个图标(QIcon).
3: int main(int argc, char *argv[])
4: {
main() 函数是程序的入口点. 几乎总是这样,在使用Qt时,main() 函数仅仅被用来完成一些初始化工作在将控制权交给Qt前. 参数 argc 为命令行参数个数,参数 argv 为指向命令行参数的数组. 这是一段标准C++代码.
5: QApplication app(argc, argv);
对象 app 是 程序的 QApplication 实例. 在这行代码被创建. 我们将 argc 和 argv 通过 QApplication 的构造函数船体给了它, 因此它便能处理规定的命令行参数(如X11系统下的 -display). 所有的命令行参数都会被 Qt 识别,并从 argv 中移除, 相应的 argc 也会被减少. 可以参见 QApplication::arguments() 文档详细说明. QApplication 对象必须在在任何 Qt GUI 相关特性的使用前创建.
6: QPushButton hello("Hello world!");
在这里, 声明了 QApplication 后, 迎来了第一行 GUI 相关代码: 一个按钮被创建. 按钮被设置显示文本 "Hello world!". 由于我们没有显式的为它指定 父窗体(QPushButton构造函数的第二个参数), 按钮将会拥有一个带有窗体框和标题栏的窗体. 按钮的大小被确定为默认显示文本的大小. 我们可以调用 QWidget::move() 给 widget 在屏幕上指定一个特定的位置, 但是在这里我们让系统选择了一个位置.
7: hello.show();
当一个 widget 被创建时是不可见的. 你必须调用 QWidget::show() 使得它可见.
8: return app.exec();
9: }
在这里 main() 函数将控制权交给了 Qt. QCoreApplication::exec() 会直到应用程序退出时返回.(QCoreApplication 是 QApplication 的基类. 它实现了 QApplication 的核心功能, 没有 GUI 功能 并且 可以被用在开发没有 GUI 的应用程序里.) 在 QCoreApplication::exec() 中, Qt 接收并且处理来自 用户 和 系统 的事件 并将它们传递给恰当的 widget 处理.
你现在可以尝试编译、运行这个程序. 这个例子存在于 Qt 的 examples/tutorials/tutorial 目录下. 将会在你编译Qt 的时候自动被编译.
如果你是动手自己写的代码, 你需要按照以下指令操作: 要编译 C++ 应用程序,你需要创建一个 makefile 文件. 最简单的创建 makefile 方法就是使用 Qt 自带的 qmake 编译工具. 如果你已经将 main.cpp 文件保存于一个空目录下,你所需要做的如下:
qmake -project第一条命令告诉 qmake 创建一个工程文件 (.pro 文件). 第二条命令告诉 qmake 创建一个基于 工程文件 的平台相关的 makefile. 你现在可以试着 敲入 make(或者 nmake 如果你使用Visual Studio) 并且运行你的第一个 Qt 应用程序!
qmake
后记: 平时自己看也就罢了,没想到要翻译写出来既然如此困难! 感觉词语不通顺,目前国内 Qt 相关的中文资料较少,很多人又不愿意看 英文的, 举手之劳,希望既能够自己练练,也能够给初学者或者希望学习者提供点资料 :)