Qt探索之旅(一)Hello World !

Qt基础
QTabWidget:可以选择的选项卡
QLabel:标签,可以承载图片,文字
QTextEdit:多行编辑器
QLineEdit:单行编辑器
QPushButton:按钮
QGroupBox:主框
QTableWidget:表格部件
QCheckBox:复选框,多选框
QRadioButton:单选框,只能选一个
QHBoxLayout horizontal:水平布局
QVBoxLayout vertical:垂直布局

开发Qt应用程序的基本方法总结

1.全部采用手写代码,在命令行下完成编译和运行
 
  这种方式是最基础、最基本的,使用它的感觉有点像练武术时的扎马步,一招一式非常清楚。它最锻炼开发者的技能,因为每一步都不能含糊,开发者需要对编译系统、Qt基础知识有着非常扎实的了解。笔者熟知的许多的Qt编程的“老鸟”中,很多人都青睐这种方式。它的缺点是在一般规模的应用中,还足以胜任,但如果是大型的、多人参与的工程开发和项目研制,它就有些不方便了,比如如何协同开发、如何进行版本控制管理等等问题都会变得难以解决。

2.在集成开发环境(IDE)中采用手写代码(包括设计界面),使用IDE完成编译和运行
 
  这种方式的好处是可以借助IDE来管理工程要素,摒弃了手工的方式,不必太关注工程文件中的一些细节,并且可以借助调试和图形化工具来快速开发;缺点是IDE并不是智能的无可挑剔,它替你完成的一些事情往往会不如你所愿,很多情况下,你还是需要命令行工具来辅助。

3.使用Qt Designer设计界面,使用IDE完成编译和运行
  
  这种方式也很常见,开发者使用Qt Designer设计界面元素,然后把工程文件的生成、管理,程序的编译运行都交给IDE来处理。这种方式的好处可以方便快速的对界面进行修改,在界面元素需要经常变动的情况下,效率比较高;缺点是使用Qt Designer生成的代码量比较庞大,由于好多都是自动生成的,阅读代码和调试程序相对比较困难。
  
  对于初学者而言,采用第3种方式最容易“入门”,但基础可能打得不太扎实,因为这些集成式的工具为开发者做了太多的事情,在它们形成的层层布幔之下,隐藏了Qt的核心机制与原理,所以不太容易理解和掌握Qt编程的本质。所以呢,我向初学Qt的读者朋友推荐第1种方法,先一点一点的做起,待掌握了基础技能后,再快马加鞭也不迟。

关于信号/槽

信号/槽提供了任意两个对象间通信的机制,是Qt区别于其它GUI库的最重要的特征之一。传统的GUI库往往采用回调函数来实现对象间的通信,而Qt的信号/槽机制要更简单灵活。每个Qt对象都包含特定的信号和槽以及相应的关联定义,当有事件发生或是对象的状态发生改变时,对应的信号就被发射出来,与其相关联的槽被执行以响应该信号,完成处理工作。
信号与槽通常采用如下连接方式:
connect(Object1,SIGNAL(signal),Object2,SLOT(slot));
式中,Object1和Object2是两个对象,signal是Object1发出的信号,slot是用来响应signal信号的槽,它属于Object2。SIGNAL()和SLOT()是两个宏,它们是Qt语法中的一部分。

编译Qt应用程序的方法

我们可以选择3种方式来编译Qt应用程序:
⑴使用qmake
这是最常用的方式,qmake最为重要的作用是生成与平台关的.pro文件,并以此来生成与平台相关的makefile。
⑵使用集成开发环境
本质上使用IDE也是在使用qmake。
⑶使用第三方的编译工具
从理论上来说,任何第三方编译工具都可以用于Qt的应用程序开发中,但使用可以感知Qt(Qt-aware)的工具会比较容易一些。常见的第三方编译工具有CMake、Boost.Build
和Scons等。它们的使用相对比较复杂,不推荐初学者使用。

Qt探索之旅(一)Hello World !