怎么使用qt创建一个可视化人员管理系统,显示相关代码
时间: 2024-03-09 15:48:19 浏览: 75
以下是一个简单的可视化人员管理系统的代码示例:
mainwindow.h 文件代码:
```cpp
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlQuery>
#include <QtSql/QSqlTableModel>
#include <QtSql/QSqlRecord>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_addButton_clicked();
void on_deleteButton_clicked();
void on_modifyButton_clicked();
void on_searchButton_clicked();
void on_refreshButton_clicked();
private:
Ui::MainWindow *ui;
QSqlDatabase db;
QSqlTableModel *model;
};
#endif // MAINWINDOW_H
```
mainwindow.cpp 文件代码:
```cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 连接数据库
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("person.db");
if(!db.open()) {
QMessageBox::critical(this, "错误", "无法连接数据库");
return;
}
// 初始化表格模型
model = new QSqlTableModel(this, db);
model->setTable("person");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
// 设置表格视图
ui->tableView->setModel(model);
ui->tableView->setSelectionMode(QAbstractItemView::SingleSelection);
ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
ui->tableView->verticalHeader()->hide();
ui->tableView->show();
}
MainWindow::~MainWindow()
{
delete model;
delete ui;
}
// 添加记录
void MainWindow::on_addButton_clicked()
{
QSqlRecord record = model->record();
int row = model->rowCount();
model->insertRecord(row, record);
ui->tableView->selectRow(row);
}
// 删除记录
void MainWindow::on_deleteButton_clicked()
{
int row = ui->tableView->currentIndex().row();
if(row < 0) {
QMessageBox::warning(this, "警告", "请选择要删除的记录");
return;
}
model->removeRow(row);
}
// 修改记录
void MainWindow::on_modifyButton_clicked()
{
int row = ui->tableView->currentIndex().row();
if(row < 0) {
QMessageBox::warning(this, "警告", "请选择要修改的记录");
return;
}
model->submitAll();
}
// 查询记录
void MainWindow::on_searchButton_clicked()
{
QString name = ui->nameEdit->text();
model->setFilter(QString("name = '%1'").arg(name));
model->select();
}
// 刷新表格
void MainWindow::on_refreshButton_clicked()
{
model->setTable("person");
model->select();
model->submitAll();
}
```
这段代码实现了对数据库中 person 表格的增删改查功能,并使用了Qt提供的Sql模块来连接数据库。在mainwindow.cpp文件中,我们定义了五个槽函数分别对应添加、删除、修改、查询和刷新操作,这些操作会通过Qt提供的QSqlTableModel类来实现。同时,我们在mainwindow.h文件中声明了QSqlDatabase、QSqlQuery和QSqlTableModel类的头文件。
需要注意的是,这段代码中使用的数据库是SQLite,需要安装SQLite数据库驱动。你可以通过Qt Creator自带的Qt Maintenance Tool来安装驱动。
阅读全文