先定义头文件:address.h

#ifndef ADDRESSBOOK_H
#define ADDRESSBOOK_H

#include <QWidget>

QT_BEGIN_NAMESPACE
class QLabel;
class QLineEdit;
class QTextEdit;
QT_END_NAMESPACE

//! [class definition]
class AddressBook : public QWidget
{
Q_OBJECT

public:
AddressBook(QWidget *parent = 0);

private:
QLineEdit *nameLine;
QTextEdit *addressText;
};
//! [class definition]

#endif


在address.cpp文件中对address.h中的成员变量进行声明:


#include <QtWidgets>
#include "addressbook.h"

//! [constructor and input fields]
AddressBook::AddressBook(QWidget *parent)
: QWidget(parent)
{
QLabel *nameLabel = new QLabel(tr("Name:"));
nameLine = new QLineEdit;

QLabel *addressLabel = new QLabel(tr("Address:"));
addressText = new QTextEdit;
//! [constructor and input fields]

//! [layout]
QGridLayout *mainLayout = new QGridLayout;
mainLayout->addWidget(nameLabel, 0, 0);
mainLayout->addWidget(nameLine, 0, 1);
mainLayout->addWidget(addressLabel, 1, 0, Qt::AlignTop);
mainLayout->addWidget(addressText, 1, 1);
//! [layout]

//![setting the layout]
setLayout(mainLayout);
setWindowTitle(tr("Simple Address Book"));
}
//! [setting the layout]


用main.cpp文件生成整个窗口:

#include <QtWidgets>
#include "addressbook.h"

//! [main function]
int main(int argc, char *argv[])
{
QApplication app(argc, argv);

AddressBook addressBook;
addressBook.show();

return app.exec();
}
//! [main function]


将三个文件放在一个工程中,编译、运行,可得到如下结果:

地址薄(一)_QT


现在地址薄只能显示名字、地址的标签和编辑栏,还没有添加功能,需要进一步

修改。