下面是一个简单的 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. 编译和运行
- 使用 Qt Creator 打开项目。
- 编译并运行程序。
功能说明
- 添加联系人:点击“添加”按钮,输入联系人的名字,点击确认后将其添加到列表中。
- 编辑联系人:选择一个联系人,点击“编辑”按钮,可以修改其名字。
- 删除联系人:选择一个联系人,点击“删除”按钮,将其从列表中移除。
这个示例提供了一个基本的地址簿功能,可以根据需要进一步扩展,例如添加电话、电子邮件等信息。