Address Book 1 - Designing the User Interface
Files:
tutorials/addressbook/part1/addressbook.cpp
tutorials/addressbook/part1/addressbook.h
tutorials/addressbook/part1/main.cpp
tutorials/addressbook/part1/part1.pro
该教程第一部分覆盖了 Address Book 基本 GUI 的设计。
第一步创建的 GUI 程序是为了设计用户界面,本章中我们的目标是放置 Labels 标
签和输入框来实现电话本的基本功能。见下图:
需要放置两个 QLabel 对象,nameLabel1 和 addressLabel1,还有两个输入框,一个
QLineEdit 对象:nameLine,和一个 QTextEdit 对象:addressText,以便用户输入联
系人姓名和地址。见下图:
有三类文件实习这个电话本程序:
addressbook.h
– 定义
addressbook.cpp
– 实现
AddressBook
类
main.cpp
– 包含一个
main()函数
, 和一个
AddressBook
的实例
Qt Programming - Subclassing
当编写 Qt 程序时,我们通常继承 Qt Objects 来添加功能。在创建自定义的 widgets
或者一系列标准 widgets 时这是个重要的概念。通过子类化改变 widget 的功能有以
下优点:
1. 可以实现虚函数或纯虚函数达到我们的需求,必要时也可以回调基类的功能。
2. 允许封装部分用户界面类,因此程序的其他部分不需要知道单独的组件如何工作
3. 子类化可以在一个程序中创建不同的自定义组件,也可以在其他工程中复用。
Qt 不支持特定的电话簿部件,所以我们通过继承 Qt 部件类来实现。
Defining the AddressBook Class
通过定义 Addressbook 作为 QWidget 的子类并声明一个构造函数。使用 Q_OBJECT
宏声明该电话本类支持国际化和 Qt 的信号和槽,及时我们现阶段还不是用这些特
性。
class AddresBook : public QWidget
{
Q_OBJECT