QT编程入门系列文章之三——Hello, world(续)!

在这里插入图片描述
下面来逐行解释一下前面的那个Hello, world!程序,尽管很简单,但却可以对Qt程序的结构有一个清楚的认识。现在再把代码贴过来:

#include

#include

int main(int argc, char *argv[])

{

QApplication app(argc, argv);

QLabel *label = new QLabel(“Hello, world!”); label->show();

return app.exec();

}

第1行和第2行就是需要引入的头文件。和普通的C++程序没有什么两样,如果要使用某个组件,就必须要引入相应的头文件,这类似于Java的import机制。值 得说明的是,Qt中头文件和类名是一致的。也就是说,如果你要使用某个类的话,它的类名就是它的头文件名。

第3行是空行 😃

第4行是main函数函数头。这与普通的C++程序没有什么两样,学过C++的都明白。因此你可以看到,实际上,Qt完全通过普通的 main函数进入, 这不同于 wxWidgets,因为wxWidgets的Hello, world需要你继承它的一个wxApp类,并覆盖它的wxApp::OnInit方法,系统会自动将OnInit编译成入口函数。不过在Qt中,就不需 要这些了。

第5行,噢噢,大括号…

第 6 行,创建一个 QApplication 对象。这个对象用于管理应用程序级别的 资源 。 QApplication的构造函数要求两个参数,分别来自 main的那两个参数,因此,Qt在一定程度上是支持命令行参数的。

第 7 行,创建一个 QLabel 对象,并且能够显示 Hello, world!字符串。和其他库的Label控件一样,这是用来显示文本的。在Qt中,这被称为一个widget(翻译出来是小东西,不过这个翻译并不 好…),它等同于 Windows 技术里面的控件(controls)和容器(containers)。也就是说,widget可以放置其他的 widget,就像Swing的组件。大多数Qt程序使用QMainWindow或者QDialog作为顶级组件,但Qt并不强制要求这点。在这个例子 中,顶级组件就是一个QLabel。

第8行,使这个label可见。组件创建出来之后通常是不可见的,要求我们手动的使它们可见。这 样,在创建出组建之后我们就可以对它们进行各种定制,以避免出现之后在屏幕上面会有闪烁。

第9行,将应用程序的控制权移交给Qt。这 时,程序的事件循环就开始了,也就是说,这时可以相应你发出的各种事件了。这类似于gtk+最后的一行gtk_main()。

第10 行,大括号……程序结束了。

注意,我们并没有使用delete去删除创建的QLabel,因为在程序结束后操作系统会回收这个空间—— 这只是因为这个 QLabel占用的内存比较小,但有时候这么做会引起麻烦的,特别是在大程序中,因此必须小心。

好了,程序解释完了。按 照正常的流程,下面应该编译。前面也提过,Qt的编译不能使用普通的make,而必须先使用qmake进行预编译。所以,第一步应该是在工程目录下使用 qmake -project 命令创建.pro文件(比如说是叫helloworld.pro)。然后再在.pro文件目录下使用 qmake helloworld.pro (make) 或者 qmake -tp vc helloworld.pro (nmake) 生成 makefile,然后才能调用 make或者是nmake进行编译。不过因为我们 使用的是IDE,所以这些步骤就不需要我们手动完成了。

值得说明一点的是,这个 qmake能够生成标准的 makefile文件,因此完 全可以利用qmake自动生成makefile——这是题外话。

好了,下面修改一下源代码,把QLabel的创建一句改成

QLabel *label = new QLabel(“

Hello, world!

”);

运行一下:
在这里插入图片描述
同Swing的JLabel一样,Qt也是支持HTML解析的。

好了,这个 Hello, world就说到这里!明确一下 Qt的程序结构,在一个 Qt源代码中,一下两条语句是必不可少的:

QApplication app(argc, argv);

//…

return app.exec()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习成长分享快乐

您的鼓励是我前进的不竭动力~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值