下面是一个简单的 Qt 地址簿程序示例,展示了如何使用 Qt 创建一个基本的地址簿应用。该示例使用了 Qt Widgets 模块,允许用户添加、编辑和删除联系人信息。

1. 项目结构

假设项目名为 AddressBook,其结构如下:

AddressBook/
├── main.cpp
├── mainwindow.cpp
├── mainwindow.h
├── mainwindow.ui
└── addressbook.pro

2. addressbook.pro 文件

这是项目的 Qt 项目文件,内容如下:

QT       += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = AddressBook
TEMPLATE = appSOURCES += main.cpp\mainwindow.cppHEADERS  += mainwindow.hFORMS    += mainwindow.ui

3. main.cpp 文件

这是应用程序的入口点,内容如下:

#include "mainwindow.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}

4. mainwindow.h 文件

这是主窗口的头文件,定义了用户界面和功能:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QListWidgetItem>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void on_addButton_clicked();void on_editButton_clicked();void on_deleteButton_clicked();private:Ui::MainWindow *ui;
};#endif // MAINWINDOW_H

5. mainwindow.cpp 文件

这是主窗口的实现文件,包含了功能的实现代码:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QInputDialog>
#include <QMessageBox>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_addButton_clicked()
{bool ok;QString name = QInputDialog::getText(this, tr("Add Contact"),tr("Name:"), QLineEdit::Normal,"", &ok);if (ok && !name.isEmpty()) {ui->listWidget->addItem(name);}
}void MainWindow::on_editButton_clicked()
{QListWidgetItem *item = ui->listWidget->currentItem();if (item) {bool ok;QString name = QInputDialog::getText(this, tr("Edit Contact"),tr("Name:"), QLineEdit::Normal,item->text(), &ok);if (ok && !name.isEmpty()) {item->setText(name);}} else {QMessageBox::warning(this, tr("Edit Contact"), tr("Please select a contact to edit."));}
}void MainWindow::on_deleteButton_clicked()
{QListWidgetItem *item = ui->listWidget->currentItem();if (item) {delete item;} else {QMessageBox::warning(this, tr("Delete Contact"), tr("Please select a contact to delete."));}
}

6. mainwindow.ui 文件

使用 Qt Designer 创建用户界面,包含以下组件:

  • 一个 QListWidget 用于显示联系人列表。
  • 三个 QPushButton,分别为“添加”、“编辑”和“删除”。

7. 编译和运行

  1. 使用 Qt Creator 打开项目。
  2. 编译并运行程序。

功能说明

  • 添加联系人:点击“添加”按钮,输入联系人的名字,点击确认后将其添加到列表中。
  • 编辑联系人:选择一个联系人,点击“编辑”按钮,可以修改其名字。
  • 删除联系人:选择一个联系人,点击“删除”按钮,将其从列表中移除。

这个示例提供了一个基本的地址簿功能,可以根据需要进一步扩展,例如添加电话、电子邮件等信息。