基于qt,写一个车辆信息管理系统的代码
时间: 2023-07-13 16:26:42 浏览: 96
基于Qt的车载系统项目
5星 · 资源好评率100%
这里提供一个简单的车辆信息管理系统的代码示例,包含了车辆信息的添加、查询和删除功能:
mainwindow.h文件:
```c++
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QListWidget>
#include <QLineEdit>
#include <QPushButton>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
QListWidget* m_vehicleList; // 车辆信息列表
QLineEdit* m_plateNumberEdit; // 车牌号编辑框
QLineEdit* m_brandEdit; // 品牌编辑框
QLineEdit* m_modelEdit; // 型号编辑框
QPushButton* m_addButton; // 添加按钮
QPushButton* m_queryButton; // 查询按钮
QPushButton* m_deleteButton; // 删除按钮
private slots:
void onAddButtonClicked(); // 添加按钮点击事件
void onQueryButtonClicked(); // 查询按钮点击事件
void onDeleteButtonClicked(); // 删除按钮点击事件
};
#endif // MAINWINDOW_H
```
mainwindow.cpp文件:
```c++
#include "mainwindow.h"
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
// 创建车辆信息列表
m_vehicleList = new QListWidget(this);
// 创建车牌号、品牌、型号编辑框和标签
QLabel* plateNumberLabel = new QLabel(tr("车牌号:"), this);
m_plateNumberEdit = new QLineEdit(this);
QLabel* brandLabel = new QLabel(tr("品牌:"), this);
m_brandEdit = new QLineEdit(this);
QLabel* modelLabel = new QLabel(tr("型号:"), this);
m_modelEdit = new QLineEdit(this);
// 创建添加、查询、删除按钮
m_addButton = new QPushButton(tr("添加"), this);
m_queryButton = new QPushButton(tr("查询"), this);
m_deleteButton = new QPushButton(tr("删除"), this);
// 添加按钮点击事件
connect(m_addButton, &QPushButton::clicked, this, &MainWindow::onAddButtonClicked);
// 查询按钮点击事件
connect(m_queryButton, &QPushButton::clicked, this, &MainWindow::onQueryButtonClicked);
// 删除按钮点击事件
connect(m_deleteButton, &QPushButton::clicked, this, &MainWindow::onDeleteButtonClicked);
// 创建布局管理器
QVBoxLayout* vLayout = new QVBoxLayout;
QHBoxLayout* hLayout1 = new QHBoxLayout;
QHBoxLayout* hLayout2 = new QHBoxLayout;
QHBoxLayout* hLayout3 = new QHBoxLayout;
// 添加车牌号、品牌、型号编辑框和标签到水平布局管理器中
hLayout1->addWidget(plateNumberLabel);
hLayout1->addWidget(m_plateNumberEdit);
hLayout2->addWidget(brandLabel);
hLayout2->addWidget(m_brandEdit);
hLayout3->addWidget(modelLabel);
hLayout3->addWidget(m_modelEdit);
// 添加添加、查询、删除按钮到水平布局管理器中
hLayout3->addWidget(m_addButton);
hLayout3->addWidget(m_queryButton);
hLayout3->addWidget(m_deleteButton);
// 添加车牌号、品牌、型号编辑框和标签的水平布局管理器到垂直布局管理器中
vLayout->addLayout(hLayout1);
vLayout->addLayout(hLayout2);
vLayout->addLayout(hLayout3);
// 添加车辆信息列表到垂直布局管理器中
vLayout->addWidget(m_vehicleList);
// 创建主窗口部件,设置布局管理器
QWidget* mainWidget = new QWidget(this);
mainWidget->setLayout(vLayout);
setCentralWidget(mainWidget);
}
MainWindow::~MainWindow()
{
}
// 添加按钮点击事件
void MainWindow::onAddButtonClicked()
{
// 获取车牌号、品牌、型号
QString plateNumber = m_plateNumberEdit->text();
QString brand = m_brandEdit->text();
QString model = m_modelEdit->text();
// 判断车牌号是否为空
if (plateNumber.isEmpty()) {
QMessageBox::warning(this, tr("警告"), tr("请填写车牌号!"));
return;
}
// 添加车辆信息到列表中
QString vehicleInfo = plateNumber + " " + brand + " " + model;
m_vehicleList->addItem(vehicleInfo);
}
// 查询按钮点击事件
void MainWindow::onQueryButtonClicked()
{
// 获取车牌号
QString plateNumber = m_plateNumberEdit->text();
// 遍历车辆信息列表,查找匹配的车牌号
int count = m_vehicleList->count();
for (int i = 0; i < count; ++i) {
QListWidgetItem* item = m_vehicleList->item(i);
QString vehicleInfo = item->text();
if (vehicleInfo.startsWith(plateNumber)) {
// 找到匹配的车牌号,设置为当前选中项
m_vehicleList->setCurrentItem(item);
return;
}
}
// 没有找到匹配的车牌号
QMessageBox::warning(this, tr("警告"), tr("没有找到匹配的车辆信息!"));
}
// 删除按钮点击事件
void MainWindow::onDeleteButtonClicked()
{
// 获取当前选中项
QListWidgetItem* item = m_vehicleList->currentItem();
if (!item) {
// 没有选中项,提示用户选择要删除的车辆信息
QMessageBox::warning(this, tr("警告"), tr("请选择要删除的车辆信息!"));
return;
}
// 删除选中项
delete item;
}
```
在main.cpp文件中创建应用程序对象,创建主窗口对象,显示主窗口:
```c++
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
```
以上代码只是一个简单的示例,实际的车辆信息管理系统可能需要更多的功能和更复杂的界面设计。
阅读全文