【C1】基本学习【S1】Hello,Qt!
来源:互联网 发布:js中kjur undefine 编辑:程序博客网 时间:2024/05/21 08:01
第一章,Hello Qt
让我们以一个非常简单的Qt程序作为开始。我们首先讲逐行的来学习,然后来看看如何编译和运行这个程序。
- #include <QApplication>
- #include <QLabel>
- int main(int argc, char *argv[])
- {
- QApplication app(argc, argv);
- QLabel *label = new QLabel("Hello Qt!");
- label->show();
- return app.exec();
- }
第1,2行包含了QApplication和QLabel这两个类的定义。对于每个Qt类,都有一个与类名相同且首字母大写的头文件,头文件包含了类的定义。
第5行创建了一个QApplication对象来管理应用程序的资源。它的构造函数需要argc和argv这两个参数,因为Qt本身支持一些命令行参数。
第6行创建了一个显示"Hello Qt!"的QLabel类的Widget。在Qt和Unix术语,一个widget是一个在用户界面中可视的元素。这个术语起源于"window gadget"并且是Windows中的术语"control"和"container"的同义词。按钮,菜单,滚动条,和框架都是widget的例子。widget可以包含其它的widget;例如,一个应用程序窗口通常是一个包含了一个QMenuBar,一些QToolBar,一个QStatusBar,和一些其它的widget。大多数应用程序使用QMainWindow或者QDialog作为应用程序窗口,但是Qt非常有弹性,可以让任何widget作为窗口。在这个例子中,QLabel widget是应用程序窗口。
第7行使这个label可视。widget通常创建时是隐藏的,所以为了避免闪烁,我们在显示它们前就diy它们。
第8行把控制权交给了Qt掌控的那个application对象。从这开始,这个程序进入事件循环。这是一种备用模式,程序等待用户的动作,例如按下鼠标和键盘按下。用户的动作会产生各种程序能响应的事件(也称作消息),通常执行一个或更多的函数。例如,当用户点击一个widget,一个"mouse press"和一个"mouse release"事件就产生了。在这方面,GUI应用程序与传统的批处理程序非常不同,典型的批处理程序处理输入产生输出,并且中止与否不受人的干预。
简单而言,我们不必麻烦的在main函数的末尾delete掉QLabel对象。在这么小的程序下这小小的内存泄露是无害的,当程序中止时操作系统会回收内存。
现在该是在你自己的机器中实践的时候了。首先,你需要安装Qt的SDK了。(安装和编译的过程翻译就略了,以后都这样。我们当然可以只下载好Qt库,然后在VC6,VS STUDIO等IDE中引用Qt库,但当然最后还是使用Qt自己的IDE)。
在我们继续进入到下一个例子之前,让我们找点乐子,把下面这行代码
- QLabel *label = new QLabel("Hello Qt!");
替换为
- QLabel *label = new QLabel("<h2><i>Hello</i> "
- "<font color=red>Qt!</font></h2>");
然后rebuild整个应用程序。正如这个例子描述的,使用一些简单的HTML可以使Qt应用程序用户界面鲜明起来。
- 【C1】基本学习【S1】Hello,Qt!
- Qt学习一:基本程序Hello World!
- 【C1】基本学习【S2】Making Connections
- 【C1】基本学习【S3】Laying Out Widgets
- 【C1】基本学习【S4】Using the Reference Documentation
- <Linux+Qt> Qt基本Hello,World解释
- QT学习1 hello程序
- Qt 学习笔记 ---------------Hello World
- qt学习第一课:Hello Qt
- QT4 学习 第一章 一 Hello Qt
- QT学习笔记之零 Hello World
- QT学习笔记之零 Hello World
- Qt学习之路(2):Hello, world!
- Qt学习之路(2):Hello, world!
- Qt学习之路(2):Hello, world!
- Qt学习之路(2):Hello, world!
- Qt学习之路(2):Hello, world!
- Qt学习之路(2):Hello, world!
- java中jdk配置
- 如果心累,看看这些
- 决定学Qt了。。
- 学习c++
- 八面玲珑的函数
- 【C1】基本学习【S1】Hello,Qt!
- 一点感慨
- 一些思考,不算技术的
- C#中对对象的排序重写IComparer接口
- 暗夜
- 去南京
- Servlet+JavaBean实现注册和登陆
- 大学应该怎样过?
- Struts1和Struts2的区别