第一版 #1

Merged
ppgowjyir merged 3 commits from gyl into main 5 months ago

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

@ -0,0 +1,268 @@
// ai.cpp
#include "ai.h"
#include "ui_ai.h"
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QFileDialog>
#include <QNetworkRequest>
#include <QFile>
#include <QNetworkReply>
#include <QUrl>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QMovie>
#include <QtTextToSpeech/QTextToSpeech>
#include <QBuffer>
#include <QString>
#include "message.h"
#include <QSqlQuery>
#include <QSqlDatabase>
#include <QMessageBox>
#include "choose.h"
ai::ai(QWidget *parent, choose* choosePage)
: QWidget(parent),
ui(new Ui::ai),
choosePage(choosePage)
{
// 显示车牌图片
lb_pix = new QLabel;
lb_pix->setFixedSize(490, 350);
lb_pix->setScaledContents(true);
// 加载并显示名为 'fen.png' 的图片
QPixmap pixmap(":/fen.png"); // 假设图片文件已添加到 Qt 的资源文件中
pixmap = pixmap.scaled(lb_pix->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
lb_pix->setPixmap(pixmap);
// 设置窗口的背景图片
lb_pix->setStyleSheet("background-image: url(:/fen.png);"
"background-position: center;"
"background-repeat: no-repeat;"
"background-size: cover;");
// 设置载入车牌按钮
btn_load = new QPushButton("载入车牌");
btn_load->setFixedSize(90, 45);
btn_load->setStyleSheet("QPushButton {"
"background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0, "
"stop:0.0112994 rgba(173, 216, 230, 255), "
"stop:1 rgba(204, 229, 255, 255)); "
"color: rgb(255, 255, 255); "
"border: 2px solid rgba(170, 255, 255, 200); "
"border-radius: 10px; "
"padding: 5px 10px; "
"font: 16pt \"Candara\"; "
"box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.3);"
"}"
"QPushButton:hover {"
"background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0, "
"stop:0.0112994 rgba(204, 229, 255, 255), "
"stop:1 rgba(173, 216, 230, 255)); "
"border: 2px solid rgba(173, 216, 230, 255);"
"}"
"QPushButton:pressed {"
"background-color: rgba(204, 229, 255, 150); "
"box-shadow: inset 0px 0px 5px rgba(0, 0, 0, 0.2);"
"}");
// 设置识别按钮
btn_decode = new QPushButton("识别");
btn_decode->setFixedSize(90, 45);
btn_decode->setStyleSheet("QPushButton {"
"background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0, "
"stop:0.0112994 rgba(173, 216, 230, 255), "
"stop:1 rgba(204, 229, 255, 255)); "
"color: rgb(255, 255, 255); "
"border: 2px solid rgba(170, 255, 255, 200); "
"border-radius: 10px; "
"padding: 5px 10px; "
"font: 16pt \"Candara\"; "
"box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.3);"
"}"
"QPushButton:hover {"
"background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0, "
"stop:0.0112994 rgba(204, 229, 255, 255), "
"stop:1 rgba(173, 216, 230, 255)); "
"border: 2px solid rgba(173, 216, 230, 255);"
"}"
"QPushButton:pressed {"
"background-color: rgba(204, 229, 255, 150); "
"box-shadow: inset 0px 0px 5px rgba(0, 0, 0, 0.2);"
"}");
// ---- 返回箭头按钮 ----
btn_back = new QPushButton("返回", this);
btn_back->setFixedSize(40, 30);
btn_back->setStyleSheet("QPushButton {"
"background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0, "
"stop:0.0112994 rgba(173, 216, 230, 255), "
"stop:1 rgba(204, 229, 255, 255)); "
"color: rgb(255, 255, 255); "
"border: 2px solid rgba(170, 255, 255, 200); "
"border-radius: 10px; "
"padding: 2px 2px; "
"font: 13pt \"Candara\"; "
"box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.3);"
"}"
"QPushButton:hover {"
"background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0, "
"stop:0.0112994 rgba(204, 229, 255, 255), "
"stop:1 rgba(173, 216, 230, 255)); "
"border: 2px solid rgba(173, 216, 230, 255);"
"}"
"QPushButton:pressed {"
"background-color: rgba(204, 229, 255, 150); "
"box-shadow: inset 0px 0px 5px rgba(0, 0, 0, 0.2);"
"}");
// 初始位置
btn_back->move(20, this->height() - btn_back->height() - 1);
btn_back->raise();
connect(btn_back, &QPushButton::clicked, this, &ai::backToChoose);
// 设置车牌路径输入框
le_path = new QLineEdit;
le_path->setPlaceholderText("车牌图片路径:");
le_path->setMinimumHeight(30);
le_path->setStyleSheet("QLineEdit {"
"border: 1px solid rgba(170, 255, 255, 200); "
"border-radius: 10px; "
"padding: 5px 10px; "
"font: 15pt \"微软雅黑\";"
"}");
// 设置识别结果输入框
le_code = new QLineEdit;
le_code->setPlaceholderText("识别结果:");
le_code->setMinimumHeight(33);
le_code->setStyleSheet("QLineEdit {"
"border: 1px solid rgba(170, 255, 255, 200); "
"border-radius: 10px; "
"padding: 5px 10px; "
"font: 18pt \"微软雅黑\";"
"}");
speeker = new QTextToSpeech;
httpmanager = new QNetworkAccessManager;
connect(httpmanager, SIGNAL(finished(QNetworkReply*)), this, SLOT(read_ack(QNetworkReply*)));
// 2. 排版
QHBoxLayout *hbox = new QHBoxLayout;
hbox->addWidget(btn_load);
hbox->addWidget(btn_decode);
QVBoxLayout *mainbox = new QVBoxLayout;
// 车牌图片
mainbox->addWidget(lb_pix);
mainbox->addWidget(le_path);
mainbox->addWidget(le_code);
mainbox->addLayout(hbox);
setLayout(mainbox);
// 5. 前后台挂接
connect(btn_load, SIGNAL(clicked(bool)), this, SLOT(load_pix()));
connect(btn_decode, SIGNAL(clicked(bool)), this, SLOT(decode_pix()));
mes = new message;
connect(this, SIGNAL(mySignals(QString)), mes, SLOT(mySlot(QString)));
connect(this, SIGNAL(Signal_out(QString)), mes, SLOT(Slot_out(QString)));
}
void ai::load_pix()
{
QString filename = QFileDialog::getOpenFileName(this, "打开车牌照片", ".", "Images (*.png *.bmp *.jpg)");
if (filename.isEmpty()) {
return; // 如果没有选择文件,直接返回
}
QPixmap pixmap(filename);
if (!pixmap.isNull()) {
// 调整图片大小以适应QLabel的大小
pixmap = pixmap.scaled(lb_pix->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
lb_pix->setPixmap(pixmap);
} else {
qDebug() << "无法加载图片";
}
le_path->setText(filename);
}
void ai::decode_pix()
{
// 向百度发送一个二维码识别请求HTTP
QNetworkRequest myrequset;
// 填充请求url
myrequset.setUrl(QUrl("https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate?access_token=24.0e7a67f4d73ff0ff12103db37f2b053a.2592000.1758432109.282335-119834695"));
// 填充header
myrequset.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
// 填充请求的body
// 1. 挖出照片内容
QFile file(le_path->text());
file.open(QIODevice::ReadOnly);
QByteArray buf = file.readAll();
// 2. 转成base64及urlcode
QByteArray buf64 = buf.toBase64().toPercentEncoding();
QByteArray body = "image=" + buf64;
// 发送完整的一次识别请求
httpmanager->post(myrequset, body);
}
// 结果解析
void ai::read_ack(QNetworkReply *r)
{
// 提取json格式的返回
QByteArray buf = r->readAll();
qDebug() << buf;
// 提取json中的内容
QJsonDocument myjson = QJsonDocument::fromJson(buf);
QJsonObject node = myjson.object();
QJsonObject arr = node.value("words_result").toObject();
QString text = arr.value("number").toString();
le_code->setText(text);
speeker->say(text+"已识别");
speeker->setVolume(1.0); // 设置最大音量
speeker->setRate(-0.2); //放慢速度
// 判断是否已经进入
QSqlDatabase db = QSqlDatabase::database("text01"); // 使用相同的连接名 "text01"
if (!db.isOpen() && !db.open()) {
qDebug() << "数据库连接失败!";
return;
}
QString number = QString("SELECT * FROM car_number WHERE number='%1'").arg(text);
QSqlQuery query(db);
if (query.exec(number) && query.next()) {
emit Signal_out(text);
} else {
emit mySignals(text);
}
}
void ai::backToChoose()
{
if (choosePage) { // choosePage 是通过构造函数传入的指针
choosePage->show();
this->hide();
}
}
ai::~ai()
{
delete ui;
delete mes;
}

@ -0,0 +1,63 @@
#ifndef AI_H
#define AI_H
#include <QWidget>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QNetworkAccessManager>
#include <QtTextToSpeech/QTextToSpeech>
#include <QByteArray>
#include <QNetworkReply>
#include <QImage>
#include <QtTextToSpeech/QTextToSpeech>
class choose; // 前向声明
#include "message.h"
namespace Ui {
class ai;
}
class ai : public QWidget
{
Q_OBJECT
public:
// 构造函数和析构函数
explicit ai(QWidget *parent = nullptr, choose* choosePage = nullptr);
~ai();
// UI 控件声明
QLabel *lb_pix; // 显示图片的标签
QLabel *lb; // 可以用于额外的显示信息
QLineEdit *le_path; // 输入车牌图片路径
QLineEdit *le_code; // 显示识别结果
QPushButton *btn_load; // 加载图片按钮
QPushButton *btn_decode; // 识别图片按钮
QPushButton *btn_back; // 返回箭头按钮
QNetworkAccessManager *httpmanager; // 网络请求管理器
QTextToSpeech *speeker; // 语音合成对象
QByteArray toBase64(const QImage &image); // 转换图片为base64编码
public slots:
void read_ack(QNetworkReply* reply); // 处理请求回调
void load_pix(); // 加载图片的槽函数
void decode_pix(); // 识别图片的槽函数
void backToChoose(); // 返回槽函数
signals:
void mySignals(QString str); // 自定义信号,向外发送车牌号
void Signal_out(QString str); // 发送车牌号给外部系统
private:
Ui::ai *ui; // UI对象用于管理和更新界面
message *mes; // 业务逻辑对象,用于处理信息
choose* choosePage; // 保存 choose 页面指针
};
#endif // AI_H

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ai</class>
<widget class="QWidget" name="ai">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>420</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(255, 255, 255);</string>
</property>
</widget>
<resources/>
<connections/>
</ui>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

@ -0,0 +1,6 @@
#include "change_ui.h"
change_ui::change_ui()
{
}

@ -0,0 +1,11 @@
#ifndef CHANGE_UI_H
#define CHANGE_UI_H
class change_ui
{
public:
change_ui();
};
#endif // CHANGE_UI_H

@ -0,0 +1,40 @@
#include "charge_rules.h"
#include "ui_charge_rules.h"
#include <QDebug>
#include <QMessageBox>
charge_rules::charge_rules(QWidget *parent) :
QDialog(parent),
ui(new Ui::charge_rules)
{
ui->setupUi(this);
rule=new cost;
connect(this,SIGNAL(Signal_rules(double,double,double,double)),rule,SLOT(Slot_rules(double,double,double,double)));
this->setWindowTitle("收费规则");
}
charge_rules::~charge_rules()
{
delete ui;
delete rule;
}
void charge_rules::on_pushButton_2_clicked()
{
this->close();
}
void charge_rules::on_pushButton_clicked()
{
QString T=ui->lineEdit->text();
QString money=ui->lineEdit_2->text();
QString free=ui->lineEdit_3->text();
QString max=ui->lineEdit_4->text();
double t=T.toDouble();
double m=money.toDouble();
double f=free.toDouble();
double mm=max.toDouble();
emit Signal_rules(t,m,f,mm);
QMessageBox::about(NULL, "消息框", "修改成功");
this->close();
}

@ -0,0 +1,33 @@
#ifndef CHARGE_RULES_H
#define CHARGE_RULES_H
#include <QDialog>
#include "cost.h"
namespace Ui {
class charge_rules;
}
class charge_rules : public QDialog
{
Q_OBJECT
public:
explicit charge_rules(QWidget *parent = 0);
~charge_rules();
private slots:
void on_pushButton_2_clicked();
void on_pushButton_clicked();
signals:
void Signal_rules(double t,double m,double f,double max);
private:
Ui::charge_rules *ui;
cost *rule;
};
#endif // CHARGE_RULES_H

@ -0,0 +1,192 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>charge_rules</class>
<widget class="QDialog" name="charge_rules">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>500</width>
<height>400</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>500</width>
<height>400</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>500</width>
<height>400</height>
</size>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>90</x>
<y>280</y>
<width>101</width>
<height>51</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string>更改</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_2">
<property name="geometry">
<rect>
<x>300</x>
<y>280</y>
<width>91</width>
<height>51</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string>返回</string>
</property>
</widget>
<widget class="QWidget" name="">
<property name="geometry">
<rect>
<x>40</x>
<y>40</y>
<width>401</width>
<height>201</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string>计费周期(分钟)</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string> 周期收费(元)</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_3">
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string>免费时长(分钟)</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_4">
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string> 最高收费(元)</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLineEdit" name="lineEdit">
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="placeholderText">
<string>30</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_2">
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string/>
</property>
<property name="placeholderText">
<string>1.5</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_3">
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string/>
</property>
<property name="placeholderText">
<string>15</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_4">
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string/>
</property>
<property name="placeholderText">
<string>30</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui>

@ -0,0 +1,253 @@
#include "choose.h"
#include "ai.h"
#include "login.h"
#include "marketing.h"
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QDebug>
#include <QPixmap>
#include <QPainter>
#include <QLinearGradient>
#include <QFont>
#include <QTextToSpeech>
#include <QMediaPlayer>
#include <QMediaPlaylist>
#include <QScrollArea>
#include <QUrl>
// ================= GradientLabel =================
void GradientLabel::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
QFont font = this->font();
painter.setFont(font);
QRect rect = this->rect().adjusted(contentsMargins().left(),
contentsMargins().top(),
-contentsMargins().right(),
-contentsMargins().bottom());
QString text = this->text();
QLinearGradient gradient(0, 0, rect.width(), 0);
gradient.setColorAt(0, QColor("#ff9a9e"));
gradient.setColorAt(0.5, QColor("#ff6a95"));
gradient.setColorAt(1, QColor("#fad0c4"));
painter.setPen(QPen(QBrush(gradient), 0));
painter.drawText(rect, alignment(), text);
}
// ================= choose 构造函数 =================
choose::choose(QWidget *parent)
: QWidget(parent), aiPage(nullptr), loginPage(nullptr), marketingPage(nullptr)
{
// 播放背景音乐
QMediaPlaylist *musicList = new QMediaPlaylist(this);
musicList->addMedia(QUrl::fromLocalFile("D:/sparking111dui/111/park/yun.wav"));
QMediaPlayer *soundPlayer = new QMediaPlayer(this);
soundPlayer->setPlaylist(musicList);
soundPlayer->play();
musicList->setPlaybackMode(QMediaPlaylist::CurrentItemInLoop);
soundPlayer->setVolume(80);
// 固定窗口大小
resize(550, 400);
setMinimumSize(550, 400);
setMaximumSize(550, 400);
// 背景图片
photoLabel = new QLabel(this);
photoLabel->setScaledContents(false);
photoLabel->setGeometry(0, 0, width(), height());
photoLabel->setAlignment(Qt::AlignCenter);
QPixmap pixmap(":/choose.jpg");
if (!pixmap.isNull()) {
photoLabel->setPixmap(pixmap.scaled(photoLabel->size(),
Qt::IgnoreAspectRatio,
Qt::SmoothTransformation));
} else {
qDebug() << "图片加载失败,请检查路径";
}
// 顶部渐变文字
titleLabel = new GradientLabel(this);
titleLabel->setText("请选择您的角色");
QFont titleFont("微软雅黑", 25, QFont::Bold);
titleLabel->setFont(titleFont);
titleLabel->setAlignment(Qt::AlignVCenter);
QHBoxLayout *titleLayout = new QHBoxLayout();
titleLayout->addSpacing(30);
titleLayout->addWidget(titleLabel);
titleLayout->addStretch();
// 公告区域使用滚动条
announcementLabel = new QLabel;
announcementLabel->setWordWrap(true);
announcementLabel->setText("停车场公告:\n"
"1. 请规范停放,车身完全入位,勿占消防通道、应急出口及他人专属车位。\n"
"2. 勿在车内存放现金、首饰等贵重物品,锁车后确认门窗是否关好。\n"
"3. 场内禁鸣笛、限速5km/h儿童与宠物需成人全程看护。\n"
"4. 若遇车辆剐蹭、设备故障联系管理员电话88888888协助处理。\n"
"5. 遇暴雨、大风等恶劣天气,建议选择地下停车场或空旷且安全区域,避免车辆受损。\n"
"感谢您的理解与配合,祝您出行平安!");
announcementLabel->setStyleSheet(
"color: #000000;"
"background: qlineargradient(x1:0, y1:0, x2:0, y2:1, "
"stop:0 #fff0f2, stop:0.5 #fff5f8, stop:1 #fffafb);"
"font: 11px '微软雅黑';"
"padding: 5px;"
"border-radius: 10px;"
);
scrollArea = new QScrollArea(this);
scrollArea->setWidgetResizable(true);
scrollArea->setWidget(announcementLabel);
scrollArea->setFixedSize(300, 140); // 公告可视区域
scrollArea->move(width() - 320, 80);
scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
scrollArea->setStyleSheet(
"QScrollArea {"
"background: transparent;"
"border: none;"
"border-radius: 10px;"
"}"
"QScrollBar:vertical {"
"width: 6px;"
"background: transparent;"
"margin: 0px;"
"}"
"QScrollBar::handle:vertical {"
"background: rgba(200,200,200,150);"
"border-radius: 3px;"
"}"
);
// 按钮
btnAI = new QPushButton("车主", this);
btnLogin = new QPushButton("系统管理员", this);
btnMarketing = new QPushButton("系统运营商", this);
QString btnStyle = R"(
QPushButton {
background-color: qlineargradient(x1:0, y1:0, x2:1, y2:1,
stop:0 #ff9a9e, stop:1 #fad0c4);
color: white;
font: bold 15px "微软雅黑";
border-radius: 10px;
padding: 8px 5px;
}
QPushButton:hover {
background-color: qlineargradient(x1:0, y1:0, x2:1, y2:1,
stop:0 #fad0c4, stop:1 #ff9a9e);
}
QPushButton:pressed {
background-color: #f78ca0;
}
)";
btnAI->setStyleSheet(btnStyle);
btnLogin->setStyleSheet(btnStyle);
btnMarketing->setStyleSheet(btnStyle);
btnAI->setFixedSize(120,50);
btnLogin->setFixedSize(120,50);
btnMarketing->setFixedSize(120,50);
QVBoxLayout *vLayout = new QVBoxLayout(this);
vLayout->addSpacing(150);
vLayout->addLayout(titleLayout);
vLayout->addSpacing(42);
QHBoxLayout *hLayout = new QHBoxLayout();
hLayout->addStretch();
hLayout->addWidget(btnAI);
hLayout->addSpacing(30);
hLayout->addWidget(btnLogin);
hLayout->addSpacing(30);
hLayout->addWidget(btnMarketing);
hLayout->addStretch();
vLayout->addLayout(hLayout);
vLayout->addStretch(1);
vLayout->setContentsMargins(0, 0, 0, 0);
setLayout(vLayout);
btnAI->raise();
btnLogin->raise();
btnMarketing->raise();
titleLabel->raise();
scrollArea->raise();
// 语音播报
tts = new QTextToSpeech(this);
tts->say("请选择您的角色");
// 信号槽
connect(btnAI, &QPushButton::clicked, this, &choose::openAIPage);
connect(btnLogin, &QPushButton::clicked, this, &choose::openLoginPage);
connect(btnMarketing, &QPushButton::clicked, this, &choose::openMarketingPage);
}
choose::~choose()
{
aiPage = nullptr;
loginPage = nullptr;
marketingPage = nullptr;
}
void choose::resizeEvent(QResizeEvent *event)
{
photoLabel->setGeometry(0, 0, width(), height());
QPixmap pixmap(":/choose.jpg");
if (!pixmap.isNull()) {
photoLabel->setPixmap(pixmap.scaled(photoLabel->size(),
Qt::IgnoreAspectRatio,
Qt::SmoothTransformation));
}
// 滚动公告自适应
if (scrollArea) {
scrollArea->move(width() - 320, 80);
}
QWidget::resizeEvent(event);
}
// 打开子页面
void choose::openAIPage()
{
tts->say("您选择了车主");
if (!aiPage) aiPage = new ai(nullptr, this);
aiPage->show();
this->hide();
}
void choose::openLoginPage()
{
tts->say("您选择了系统管理员");
if (!loginPage) loginPage = new login(nullptr, this);
loginPage->show();
this->hide();
}
void choose::openMarketingPage()
{
tts->say("您选择了系统运营商");
if (!marketingPage) marketingPage = new marketing(nullptr, this);
marketingPage->show();
this->hide();
}
// 设置公告文本(动态修改)
void choose::setAnnouncementText(const QString &text)
{
if (!announcementLabel) return;
announcementLabel->setText(text);
announcementLabel->adjustSize();
}

@ -0,0 +1,64 @@
#ifndef CHOOSE_H
#define CHOOSE_H
#include <QWidget>
#include <QPushButton>
#include <QLabel>
#include <QResizeEvent>
#include <QTextToSpeech>
#include <QLineEdit>
#include <QScrollArea>
class ai;
class login;
class marketing;
class Widget;
// 渐变文字 Label
class GradientLabel : public QLabel
{
Q_OBJECT
public:
explicit GradientLabel(QWidget *parent = nullptr) : QLabel(parent) {}
protected:
void paintEvent(QPaintEvent *event) override;
};
class choose : public QWidget
{
Q_OBJECT
public:
explicit choose(QWidget *parent = nullptr);
~choose();
protected:
void resizeEvent(QResizeEvent *event) override;
private slots:
void openAIPage();
void openLoginPage();
void openMarketingPage();
private:
QLabel *photoLabel;
GradientLabel *titleLabel;
QLabel *announcementLabel; // 公告标签
QScrollArea *scrollArea; // 滚动条区域
QPushButton *btnAI;
QPushButton *btnLogin;
QPushButton *btnMarketing;
QLineEdit *textEdit;
ai *aiPage;
login *loginPage;
marketing *marketingPage;
Widget* widgetPage = nullptr;
QTextToSpeech *tts;
public:
void setAnnouncementText(const QString &text); // 设置公告内容
};
#endif // CHOOSE_H

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>choose</class>
<widget class="QWidget" name="choose">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>420</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>600</width>
<height>420</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>600</width>
<height>420</height>
</size>
</property>
<property name="windowTitle">
<string>From</string>
</property>
</widget>
<resources/>
<connections/>
</ui>

@ -0,0 +1,34 @@
#ifndef COST_H
#define COST_H
#include <QDialog>
#include "message.h"
namespace Ui {
class cost;
}
class message;
class cost : public QDialog
{
Q_OBJECT
public:
explicit cost(QWidget *parent = 0);
~cost();
double T,money,free,max;
private slots:
void on_pushButton_clicked();
void Slot_cost(int time,QString number);
void Slot_rules(double t,double m,double f,double max);
private:
Ui::cost *ui;
message *m;
signals:
void Signal_message(QString number,int total,double pay);
};
#endif // COST_H

@ -0,0 +1,129 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>cost</class>
<widget class="QDialog" name="cost">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>400</width>
<height>300</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>400</width>
<height>300</height>
</size>
</property>
<property name="sizeIncrement">
<size>
<width>4</width>
<height>0</height>
</size>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>20</x>
<y>40</y>
<width>341</width>
<height>141</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label_4">
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string> 停车时长(分钟)</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_3">
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string> 收费总额(元)</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QTextBrowser" name="textBrowser_3">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>35</height>
</size>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
</widget>
</item>
<item>
<widget class="QTextBrowser" name="textBrowser_4">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>35</height>
</size>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>130</x>
<y>210</y>
<width>111</width>
<height>51</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>14</pointsize>
</font>
</property>
<property name="text">
<string>返回</string>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1022 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 948 KiB

@ -0,0 +1,15 @@
<RCC>
<qresource prefix="/">
<file>car.gif</file>
<file>house.jpg</file>
<file>pig.gif</file>
<file>sun.gif</file>
<file>huoche.png</file>
<file>tian.png</file>
<file>fen.png</file>
<file>car.png</file>
<file>choose.jpg</file>
<file>notice.jpg</file>
<file>marketing.jpg</file>
</qresource>
</RCC>

@ -0,0 +1,106 @@
#include "login.h"
#include "ui_login.h"
#include <QMessageBox>
#include "signal.h"
#include <QSqlQuery>
#include <QString>
#include <QDebug>
#include "widget.h"
#include <QGraphicsDropShadowEffect> //设置阴影
#include <QMovie> // 包含QMovie的头文件
#include <QMediaPlayer>
#include <QMediaPlaylist>
#include <QUrl>
#include "choose.h" // 包含 choose 页面头文件
login::login(QWidget *parent, choose* choosePage) : QDialog(parent),
ui(new Ui::login),choosePage(choosePage)
{
ui->setupUi(this);
sign = new sign_in;
// w = new Widget(choosePage);
//插入图片
QPixmap house(":/house.jpg");
ui->label_3->setPixmap(house);
//设置阴影
QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);
shadow->setOffset(-3, 0);
shadow->setColor(QColor("#888888"));
shadow->setBlurRadius(30);
ui->label_3->setGraphicsEffect(shadow);
//动图
QMovie *movie = new QMovie(":/sun.gif");
ui->label_2->setMovie(movie);
movie->start();
connect(ui->pass, &QLineEdit::returnPressed, this, &login::on_login_2_clicked);
this->setWindowFlags(Qt::WindowCloseButtonHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint);
}
login::~login()
{
delete ui;
delete sign;
delete w;
}
void login::on_exit_clicked()
{
if (choosePage) {
choosePage->show(); // 显示已有 choose 页面,音乐不会重复
this->hide();
}
}
void login::on_login_2_clicked()
{
QString username = ui->name->text();
QString userpwd = ui->pass->text();
// 使用在 main 中创建的数据库连接
QSqlDatabase db = QSqlDatabase::database("text01");
if (!db.isOpen()) {
QMessageBox::warning(this, tr("警告!"), tr("数据库未打开!"), QMessageBox::Yes);
return;
}
QString userQuery = QString("select * from user where name='%1' and pass='%2' ").arg(username).arg(userpwd);
QSqlQuery query(db); // 使用 db 对象来执行查询
if (query.exec(userQuery) && query.next()) {
if (!w) {
w = new Widget(choosePage,nullptr); // 初始化 Widget
}
w->show();
this->hide();
} else {
QMessageBox::warning(this, tr("警告!"), tr("用户名或密码错误!"), QMessageBox::Yes);
ui->name->clear();
ui->pass->clear();
ui->name->setFocus();
}
}
void login::showEvent(QShowEvent *event)
{
QDialog::showEvent(event); // 保留默认行为
// 每次显示登录窗口时清空账号和密码
ui->name->clear();
ui->pass->clear();
ui->name->setFocus();
}
void login::on_pushButton_clicked()
{
sign->exec();
}

@ -0,0 +1,43 @@
#ifndef LOGIN_H
#define LOGIN_H
#include <QDialog>
#include "sign_in.h"
#include "widget.h"
#include <QMediaPlayer>
#include <QMediaPlaylist>
class choose;
namespace Ui {
class login;
}
class login : public QDialog
{
Q_OBJECT
public:
explicit login(QWidget *parent, choose* choosePage );
~login();
private slots:
void on_exit_clicked();
void on_login_2_clicked();
void on_pushButton_clicked();
private:
Ui::login *ui;
sign_in *sign;
Widget* w = nullptr; // 原来的 widget 指针
choose* choosePage = nullptr; // 新增 choose 指针
protected:
void showEvent(QShowEvent *event) override;
};
#endif // LOGIN_H

@ -0,0 +1,276 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>login</class>
<widget class="QDialog" name="login">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>420</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>600</width>
<height>420</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>600</width>
<height>420</height>
</size>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(255, 255, 255);</string>
</property>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>190</x>
<y>370</y>
<width>61</width>
<height>31</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(64, 145, 252, 255),
stop:1 rgbargb(255, 170, 127));
color: rgb(255, 255, 255);
border:0px groove gray;border-radius:
7px;padding:2px 4px;
font: 14pt &quot;Candara&quot;;</string>
</property>
<property name="text">
<string>注册</string>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>300</x>
<y>0</y>
<width>300</width>
<height>420</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>300</width>
<height>420</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>110</x>
<y>380</y>
<width>80</width>
<height>21</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">font: 10pt &quot;宋体&quot;;</string>
</property>
<property name="text">
<string>没有账号?去注册 </string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>-10</x>
<y>0</y>
<width>151</width>
<height>141</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>16</pointsize>
</font>
</property>
<property name="text">
<string/>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
<widget class="QLineEdit" name="name">
<property name="geometry">
<rect>
<x>20</x>
<y>160</y>
<width>241</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<family>微软雅黑</family>
<pointsize>12</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(247, 247, 247);
border:1px groove gray;border-radius:
7px;padding:2px 4px;
font: 12pt &quot;微软雅黑&quot;;</string>
</property>
<property name="placeholderText">
<string>请输入用户名</string>
</property>
</widget>
<widget class="QLineEdit" name="pass">
<property name="geometry">
<rect>
<x>20</x>
<y>230</y>
<width>241</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<family>微软雅黑</family>
<pointsize>12</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(247, 247, 247);
border:1px groove gray;border-radius:
7px;padding:2px 4px;
font: 12pt &quot;微软雅黑&quot;;</string>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
<property name="placeholderText">
<string>请输入密码</string>
</property>
</widget>
<widget class="QPushButton" name="exit">
<property name="geometry">
<rect>
<x>170</x>
<y>290</y>
<width>81</width>
<height>40</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>40</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(64, 145, 252, 255),
stop:1 rgbargb(255, 170, 127));
color: rgb(255, 255, 255);
border:0px groove gray;border-radius:
7px;padding:2px 4px;
font: 20pt &quot;Candara&quot;;</string>
</property>
<property name="text">
<string>返回</string>
</property>
</widget>
<widget class="QPushButton" name="login_2">
<property name="geometry">
<rect>
<x>30</x>
<y>290</y>
<width>81</width>
<height>40</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>40</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(64, 145, 252, 255),
stop:1 rgbargb(255, 170, 127));
color: rgb(255, 255, 255);
border:0px groove gray;border-radius:
7px;padding:2px 4px;
font: 20pt &quot;Candara&quot;;</string>
</property>
<property name="text">
<string>登录</string>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>90</x>
<y>90</y>
<width>201</width>
<height>61</height>
</rect>
</property>
<property name="font">
<font>
<family>微软雅黑</family>
<pointsize>24</pointsize>
<weight>9</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">font: 75 24pt &quot;微软雅黑&quot;;</string>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;阳光小区欢迎您!&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>

@ -0,0 +1,40 @@
#include "widget.h"
#include <QApplication>
#include "login.h"
#include "ai.h"
#include <QSqlDatabase>
#include <QMessageBox>
#include "choose.h"
int main(int argc, char *argv[])
{
if(QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication a(argc, argv); // 放在这一句的前面
// 创建并打开数据库连接
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "text01");
db.setDatabaseName("D:\\parking\\sqlite-tools-win-x64-3470200\\test01.db");
if (!db.open()) {
QMessageBox::critical(nullptr, "错误", "数据库连接失败!");
return -1; // 连接失败,程序退出
}
qDebug() << "数据库连接成功!";
choose c;
c.setWindowTitle("角色选择");
c.show();
// login l;
// l.setWindowTitle("登录");
// l.show();
return a.exec();
}

@ -0,0 +1,143 @@
#include "marketing.h"
#include "choose.h"
#include <QVBoxLayout>
#include <QPushButton>
#include <QPixmap>
#include <QResizeEvent>
marketing::marketing(QWidget *parent, choose *choosePage) :
QWidget(parent),
choosePage(choosePage)
{
// 设置窗口大小
resize(600, 420);
setMinimumSize(600, 420);
setMaximumSize(600, 420);
// 垂直布局
QVBoxLayout *layout = new QVBoxLayout(this);
layout->setContentsMargins(0, 0, 0, 0);
layout->setSpacing(0);
// 背景图片
imageLabel = new QLabel(this);
originalPixmap.load(":/marketing.jpg");
if (!originalPixmap.isNull()) {
imageLabel->setPixmap(originalPixmap.scaled(size(), Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation));
} else {
imageLabel->setText("图片加载失败");
imageLabel->setAlignment(Qt::AlignCenter);
}
imageLabel->setScaledContents(true);
imageLabel->setAlignment(Qt::AlignCenter);
layout->addWidget(imageLabel);
setLayout(layout);
// 公告文本框
announcementEdit = new QTextEdit(this);
announcementEdit->setText("停车场公告:\n"
"1. 请规范停放,车身完全入位,勿占消防通道、应急出口及他人专属车位。\n"
"2. 勿在车内存放现金、首饰等贵重物品,锁车后确认门窗是否关好。\n"
"3. 场内禁鸣笛、限速5km/h儿童与宠物需成人全程看护。\n"
"4. 若遇车辆剐蹭、设备故障联系管理员电话88888888协助处理。\n"
"5. 遇暴雨、大风等恶劣天气,建议选择地下停车场或空旷且安全区域,避免车辆受损。\n"
"感谢您的理解与配合,祝您出行平安!");
announcementEdit->setFixedSize(420, 250);
announcementEdit->setStyleSheet(
"QTextEdit {"
" font: 12px '微软雅黑';"
" padding: 10px;"
" background: rgba(255, 255, 255, 0);" // 背景透明
" color: #000000;" // 文字颜色
" border: none;" // 边框透明
" border-radius: 10px;" // 圆角可选
"}"
"QTextEdit:focus {"
" outline: none;" // 聚焦时去掉蓝框
" border: none;" // 聚焦时边框也透明
"}"
);
announcementEdit->raise();
// 发布按钮
sendButton = new QPushButton("发布", this);
sendButton->setFixedSize(80, 40);
sendButton->setStyleSheet(
"QPushButton {"
" background-color: qlineargradient(x1:0, y1:0, x2:1, y2:1,"
" stop:0 #a0d8ef, stop:1 #70b8d6);"
" color: white;"
" font: bold 16px '微软雅黑';"
" border-radius: 10px;"
"}"
"QPushButton:hover {"
" background-color: qlineargradient(x1:0, y1:0, x2:1, y2:1,"
" stop:0 #70b8d6, stop:1 #a0d8ef);"
"}"
);
sendButton->raise();
// 返回按钮
backButton = new QPushButton("返回", this);
backButton->setFixedSize(70, 35);
backButton->setStyleSheet(
"QPushButton {"
" background-color: qlineargradient(x1:0, y1:0, x2:1, y2:1,"
" stop:0 #cdebb0, stop:1 #a8d88c);"
" color: white;"
" font: bold 15px '微软雅黑';"
" border-radius: 8px;"
"}"
"QPushButton:hover {"
" background-color: qlineargradient(x1:0, y1:0, x2:1, y2:1,"
" stop:0 #a8d88c, stop:1 #cdebb0);"
"}"
);
backButton->raise();
// 发布按钮点击
connect(sendButton, &QPushButton::clicked, this, [=]() {
if (choosePage && !announcementEdit->toPlainText().isEmpty()) {
choosePage->setAnnouncementText(announcementEdit->toPlainText());
}
});
// 返回按钮点击
connect(backButton, &QPushButton::clicked, this, [=]() {
if (choosePage) {
choosePage->show();
this->hide();
}
});
}
void marketing::resizeEvent(QResizeEvent *event)
{
QWidget::resizeEvent(event);
// 背景图片自适应
if (!originalPixmap.isNull()) {
imageLabel->setPixmap(originalPixmap.scaled(size(), Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation));
}
// 文本框偏移
int textboxX = (width() - announcementEdit->width()) / 2 - 10;
int textboxY = (height() - announcementEdit->height()) / 2 - 20;
announcementEdit->move(textboxX, textboxY);
// 发布按钮左下方
sendButton->move(
textboxX - sendButton->width() + 370, // x 坐标
textboxY + announcementEdit->height() - sendButton->height()/2 - 20 // y 坐标往上偏移 20
);
// 返回按钮左上角
backButton->move(15, 15);
}
marketing::~marketing()
{
// QWidget 自动释放子控件,无需 delete
}

@ -0,0 +1,32 @@
#ifndef MARKETING_H
#define MARKETING_H
#include <QWidget>
#include <QPushButton>
#include <QLabel>
#include <QPixmap>
#include <QTextEdit>
class choose; // 前置声明,避免循环依赖
class marketing : public QWidget
{
Q_OBJECT
public:
explicit marketing(QWidget *parent = nullptr, choose *choosePage = nullptr);
~marketing();
protected:
void resizeEvent(QResizeEvent *event) override;
private:
QLabel *imageLabel;
QPushButton *sendButton;
QPushButton *backButton;
QTextEdit *announcementEdit; // 改为 QTextEdit 支持多行
QPixmap originalPixmap;
choose *choosePage; // 指向 choose 页面
};
#endif // MARKETING_H

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 KiB

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>marketing</class>
<widget class="QWidget" name="marketing">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>420</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>600</width>
<height>420</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>600</width>
<height>420</height>
</size>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
</widget>
<resources/>
<connections/>
</ui>

@ -0,0 +1,98 @@
#include "message.h"
#include <QSqlQuery>
#include <QNetworkRequest>
#include <QString>
#include <QDebug>
#include <QDateTime>
#include "widget.h"
#include <QMessageBox>
message::message()
{
}
void message::mySlot(QString str)
{
// 使用在 main 中创建的数据库连接
QSqlDatabase db = QSqlDatabase::database("text01");
if (!db.isOpen()) {
QMessageBox::warning(this, tr("警告!"), tr("数据库未打开!"), QMessageBox::Yes);
return;
}
// 查询空车位数量
QString temp_car = QString("select * from cnt where number='%1' ").arg("number_of_c");
QSqlQuery temp_query(db); // 使用 db 对象来执行查询
temp_query.exec(temp_car);
temp_query.next();
int temp_cnt = temp_query.value(1).toInt();
if (temp_cnt == 0) {
QMessageBox::warning(this, tr("警告!"), tr("停车场已无车位"), QMessageBox::Yes);
} else {
// 进入操作
QString number = QString("select * from message where number='%1' ").arg(str);
QSqlQuery query(db), query_1(db), query_2(db);
int times;
// 存储进入次数
if (query.exec(number) && query.next()) {
// 修改已有信息
times = query.value(1).toInt();
times++;
QString temp = QString("update message set times = '%1' where number = '%2'").arg(times).arg(str);
query.exec(temp);
} else {
// 第一次进入
QString s = QString("insert into message(number, times, total_time, pay) values('%1', '%2', '%3', '%4')")
.arg(str).arg(1).arg(0).arg(0);
query_2.exec(s);
}
// 更改车场信息
temp_cnt--;
QString temp_change = QString("update cnt set cnt = '%1' where number = '%2'").arg(temp_cnt).arg("number_of_c");
temp_query.exec(temp_change);
// 获取当前时间
QDateTime dateTime(QDateTime::currentDateTime());
QString time = dateTime.toString("yyyy-MM-dd hh:mm:ss");
// 存储车牌和进入时间
QString ch = QString("insert into car_number(number, time) values('%1', '%2')").arg(str).arg(time);
query_1.exec(ch);
}
}
void message::Slot_out(QString str)
{
// 使用在 main 中创建的数据库连接
QSqlDatabase db = QSqlDatabase::database("text01");
if (!db.isOpen()) {
QMessageBox::warning(this, tr("警告!"), tr("数据库未打开!"), QMessageBox::Yes);
return;
}
QString Str = QString("select * from car_number where number='%1' ").arg(str);
QSqlQuery query(db);
query.exec(Str);
query.next();
QString time = query.value(1).toString();
QDateTime time_1 = QDateTime::fromString(time, "yyyy-MM-dd hh:mm:ss");
QDateTime time_2 = QDateTime::currentDateTime();
int second = time_1.secsTo(time_2); // 计算时间差
// 删除数据库中车牌号
QString a = QString("delete from car_number where number = '%1'").arg(str);
query.exec(a);
// 更改车场信息
QString temp_car = QString("select * from cnt where number='%1' ").arg("number_of_c");
QSqlQuery temp_query(db);
temp_query.exec(temp_car);
temp_query.next();
int temp_cnt = temp_query.value(1).toInt();
temp_cnt++;
QString temp_change = QString("update cnt set cnt = '%1' where number = '%2'").arg(temp_cnt).arg("number_of_c");
temp_query.exec(temp_change);
}

@ -0,0 +1,28 @@
#ifndef MESSAGE_H
#define MESSAGE_H
#include <QWidget>
#include <QObject>
#include <QLabel>
class ai;
class cost;
class message:public QWidget
{
Q_OBJECT
public:
message();
public slots:
void mySlot(QString str);
void Slot_out(QString str);
signals:
void Signal_cost(int time,QString number);
private:
cost *cos;
};
#endif // MESSAGE_H

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

@ -0,0 +1 @@
<RCC/>

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 KiB

@ -0,0 +1,55 @@
#include "number_of_car.h"
#include "ui_number_of_car.h"
#include <QSqlQuery>
#include <QNetworkRequest>
#include <QDebug>
#include <QMessageBox>
#include <QMovie> // 包含QMovie的头文件
number_of_car::number_of_car(QWidget *parent) : QDialog(parent),
ui(new Ui::number_of_car)
{
ui->setupUi(this);
this->setWindowTitle("车场信息");
//动图
QMovie *movie = new QMovie(":/car.png");
ui->label_3->setMovie(movie);
movie->start();
this->setWindowFlags(Qt::WindowCloseButtonHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint);
}
number_of_car::~number_of_car()
{
delete ui;
}
void number_of_car::on_pushButton_clicked()
{
this->close();
}
void number_of_car::cnt_slot()
{
// 使用在 main 中创建的数据库连接,获取当前车场内车辆数
QSqlDatabase db = QSqlDatabase::database("text01");
if (!db.isOpen()) {
QMessageBox::warning(this, tr("警告!"), tr("数据库未打开!"), QMessageBox::Yes);
return;
}
QString str = QString("select * from cnt where number='%1' ").arg("number_of_c");
QSqlQuery query(db);
query.exec(str);
query.next();
int cnt = query.value(1).toInt();
QString cnt_str_1 = QString::number(cnt);
QString cnt_str_2 = QString::number(100 - cnt);
// 显示信息
ui->textBrowser->setText(cnt_str_1);
ui->textBrowser_2->setText(cnt_str_2);
}

@ -0,0 +1,26 @@
#ifndef NUMBER_OF_CAR_H
#define NUMBER_OF_CAR_H
#include <QDialog>
namespace Ui {
class number_of_car;
}
class number_of_car : public QDialog
{
Q_OBJECT
public:
explicit number_of_car(QWidget *parent = nullptr);
~number_of_car();
private slots:
void on_pushButton_clicked();
void cnt_slot();
private:
Ui::number_of_car *ui;
};
#endif // NUMBER_OF_CAR_H

@ -0,0 +1,221 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>number_of_car</class>
<widget class="QDialog" name="number_of_car">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>420</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>600</width>
<height>420</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>600</width>
<height>420</height>
</size>
</property>
<property name="mouseTracking">
<bool>false</bool>
</property>
<property name="acceptDrops">
<bool>false</bool>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(255, 255, 255);</string>
</property>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>0</x>
<y>-10</y>
<width>601</width>
<height>431</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>200</x>
<y>120</y>
<width>71</width>
<height>31</height>
</rect>
</property>
<property name="font">
<font>
<family>Candara</family>
<pointsize>16</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(255, 207, 255, 255),
stop:1 rgbargb(255, 255, 255));
border:0px groove gray;border-radius:
7px;padding:2px 4px;
font: 16pt &quot;Candara&quot;;</string>
</property>
<property name="text">
<string>返回</string>
</property>
</widget>
<widget class="QTextBrowser" name="textBrowser">
<property name="geometry">
<rect>
<x>140</x>
<y>20</y>
<width>141</width>
<height>41</height>
</rect>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>100</height>
</size>
</property>
<property name="font">
<font>
<family>微软雅黑</family>
<pointsize>12</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(255, 220, 255, 255),
stop:1 rgbargb(179, 226, 255));
border:1px groove gray;border-radius:
7px;padding:2px 4px;
font: 12pt &quot;微软雅黑&quot;;
</string>
</property>
</widget>
<widget class="QTextBrowser" name="textBrowser_2">
<property name="geometry">
<rect>
<x>140</x>
<y>70</y>
<width>141</width>
<height>41</height>
</rect>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>100</height>
</size>
</property>
<property name="font">
<font>
<family>微软雅黑</family>
<pointsize>12</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(255, 220, 255, 255),
stop:1 rgbargb(179, 226, 255));
border:1px groove gray;border-radius:
7px;padding:2px 4px;
font: 12pt &quot;微软雅黑&quot;;
</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>40</x>
<y>70</y>
<width>91</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<family>微软雅黑</family>
<pointsize>12</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(255, 220, 255, 255),
stop:1 rgbargb(179, 226, 255));
border:1px groove gray;border-radius:
7px;padding:2px 4px;
font: 12pt &quot;微软雅黑&quot;;
</string>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;停车场车辆:&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>40</x>
<y>20</y>
<width>91</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<family>微软雅黑</family>
<pointsize>12</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(255, 220, 255, 255),
stop:1 rgbargb(179, 226, 255));
border:1px groove gray;border-radius:
7px;padding:2px 4px;
font: 12pt &quot;微软雅黑&quot;;
</string>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;空位数:&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>

@ -0,0 +1,73 @@
#-------------------------------------------------
#
# Project created by QtCreator 2022-08-17T19:06:56
#
#-------------------------------------------------
QT += core gui network texttospeech
QT += sql
QT += network
QT += texttospeech
INCLUDEPATH += D:/sparking111dui/OpenSSL-Win64/include
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = park
TEMPLATE = app
# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
choose.cpp \
main.cpp \
marketing.cpp \
widget.cpp \
login.cpp \
ai.cpp \
sign_in.cpp \
message.cpp \
number_of_car.cpp \
serch.cpp
HEADERS += \
choose.h \
login.h \
marketing.h \
widget.h \
ai.h \
sign_in.h \
message.h \
number_of_car.h \
serch.h
FORMS += \
choose.ui \
marketing.ui \
widget.ui \
login.ui \
ai.ui \
sign_in.ui \
number_of_car.ui \
serch.ui
RESOURCES += \
images.qrc
INCLUDEPATH += D:\sparking111dui\111\OpenSSL-Win64\include
LIBS += D:\sparking111dui\111\OpenSSL-Win64\lib\libeay32.lib \
D:\sparking111dui\111\OpenSSL-Win64\lib\ssleay32.lib
QT += multimedia

@ -0,0 +1,598 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.9.0, 2025-08-24T18:19:24. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{775bc719-e320-4834-8d84-fdf7ebf0144e}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey">
<value type="QString">-fno-delayed-template-parsing</value>
</valuelist>
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.12.3 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.12.3 MinGW 64-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5123.win64_mingw73_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/sparking111/111/build-park-Desktop_Qt_5_12_3_MinGW_64_bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/sparking111/111/build-park-Desktop_Qt_5_12_3_MinGW_64_bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/sparking111/111/build-park-Desktop_Qt_5_12_3_MinGW_64_bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy Configuration</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
<valuelist type="QVariantList" key="Analyzer.Perf.Events">
<value type="QString">cpu-cycles</value>
</valuelist>
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
<value type="int" key="Analyzer.Perf.Frequency">250</value>
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Perf.StackSize">4096</value>
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">park</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">park2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:D:/sparking111dui/111/parking/park/park.pro</value>
<value type="QString" key="RunConfiguration.Arguments"></value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">D:/sparking111/111/build-park-Desktop_Qt_5_12_3_MinGW_64_bit-Debug</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.1</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.12.3 MinGW 32-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.12.3 MinGW 32-bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5123.win32_mingw73_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/sparking111/111/build-park-Desktop_Qt_5_12_3_MinGW_32_bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/sparking111/111/build-park-Desktop_Qt_5_12_3_MinGW_32_bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:/sparking111/111/build-park-Desktop_Qt_5_12_3_MinGW_32_bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy Configuration</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value>
<valuelist type="QVariantList" key="Analyzer.Perf.Events">
<value type="QString">cpu-cycles</value>
</valuelist>
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
<value type="int" key="Analyzer.Perf.Frequency">250</value>
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="int" key="Analyzer.Perf.StackSize">4096</value>
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">park</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">park2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:D:/sparking111dui/111/park/park.pro</value>
<value type="QString" key="RunConfiguration.Arguments"></value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory"></value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default"></value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">2</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">21</value>
</data>
<data>
<variable>Version</variable>
<value type="int">21</value>
</data>
</qtcreator>

@ -0,0 +1,318 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.5.0, 2022-08-24T23:54:50. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{360982ca-123b-45be-8195-e3d14adba110}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="int">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap"/>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.10.0 MinGW 32bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.10.0 MinGW 32bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5100.win32_mingw53_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/86176/Desktop/QT/build-park-Desktop_Qt_5_10_0_MinGW_32bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清理</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/86176/Desktop/QT/build-park-Desktop_Qt_5_10_0_MinGW_32bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清理</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/86176/Desktop/QT/build-park-Desktop_Qt_5_10_0_MinGW_32bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清理</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">在本地部署</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
<value type="int">0</value>
<value type="int">1</value>
<value type="int">2</value>
<value type="int">3</value>
<value type="int">4</value>
<value type="int">5</value>
<value type="int">6</value>
<value type="int">7</value>
<value type="int">8</value>
<value type="int">9</value>
<value type="int">10</value>
<value type="int">11</value>
<value type="int">12</value>
<value type="int">13</value>
<value type="int">14</value>
</valuelist>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">park</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:/Users/86176/Desktop/QT/park/park.pro</value>
<value type="bool" key="QmakeProjectManager.QmakeRunConfiguration.UseLibrarySearchPath">true</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">park.pro</value>
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">C:/Users/86176/Desktop/QT/build-park-Desktop_Qt_5_10_0_MinGW_32bit-Debug</value>
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="int">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">18</value>
</data>
<data>
<variable>Version</variable>
<value type="int">18</value>
</data>
</qtcreator>

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

@ -0,0 +1,14 @@
#include "rgt.h"
#include "ui_register.h"
register::register(QWidget *parent) :
QWidget(parent),
ui(new Ui::register)
{
ui->setupUi(this);
}
register::~register()
{
delete ui;
}

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>register</class>
<widget class="QWidget" name="register">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>385</width>
<height>324</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QWidget" name="">
<property name="geometry">
<rect>
<x>50</x>
<y>30</y>
<width>291</width>
<height>141</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>15</pointsize>
</font>
</property>
<property name="text">
<string>用户名</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<pointsize>15</pointsize>
</font>
</property>
<property name="text">
<string>密码</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLineEdit" name="lineEdit"/>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_2"/>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="">
<property name="geometry">
<rect>
<x>50</x>
<y>190</y>
<width>301</width>
<height>81</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QPushButton" name="pushButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>注册</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="minimumSize">
<size>
<width>0</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>退出</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui>

@ -0,0 +1,22 @@
#ifndef REGISTER_H
#define REGISTER_H
#include <QWidget>
namespace Ui {
class register;
}
class register : public QWidget
{
Q_OBJECT
public:
explicit register(QWidget *parent = 0);
~register();
private:
Ui::register *ui;
};
#endif // REGISTER_H

@ -0,0 +1,90 @@
#include "serch.h"
#include "ui_serch.h"
#include <QSqlQuery>
#include <QMessageBox>
#include <QSqlDatabase>
#include <QDebug>
#include <QGraphicsDropShadowEffect> //设置阴影
serch::serch(QWidget *parent) : QDialog(parent),
ui(new Ui::serch)
{
ui->setupUi(this);
this->setWindowTitle("查询");
//插入图片
QPixmap tian(":/tian.png");
ui->label_4->setPixmap(tian);
//设置阴影
QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);
shadow->setOffset(-3, 0);
shadow->setColor(QColor("#aaffff"));
shadow->setBlurRadius(80);
ui->label_4->setGraphicsEffect(shadow);
// 确保数据库连接已经成功建立
QSqlDatabase db = QSqlDatabase::database("text01", false); // 使用已共享的数据库连接
if (!db.isOpen()) {
QMessageBox::critical(this, "错误", "数据库未连接成功!");
return;
}
this->setWindowFlags(Qt::WindowCloseButtonHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint);
}
serch::~serch()
{
// 可以选择在这里显式关闭数据库连接
QSqlDatabase::database("text01").close();
delete ui;
}
void serch::on_pushButton_2_clicked()
{
// 清除查询条件和显示区域
ui->lineEdit->clear();
ui->textBrowser_4->clear();
ui->textBrowser_5->clear();
this->close();
}
void serch::on_pushButton_clicked()
{
// 获取用户输入的车辆号码
QString str = ui->lineEdit->text();
if (str.isEmpty()) {
QMessageBox::warning(this, "警告", "请输入车辆号码!");
return;
}
// 获取共享的数据库连接
QSqlDatabase db = QSqlDatabase::database("text01", false);
if (!db.isOpen()) {
QMessageBox::critical(this, "错误", "数据库未连接成功!");
return;
}
// 查询语句
QString temp = QString("SELECT * FROM message WHERE number='%1'").arg(str);
QSqlQuery query(db); // 使用数据库连接 db
if (query.exec(temp) && query.next()) {
// 数据库查询成功,获取并显示数据
int t = query.value(1).toInt(); // 假设字段顺序是t, m
int m = query.value(2).toInt();
QString times = QString::number(t);
QString total_time = QString::number(m);
ui->textBrowser_4->setText(times);
ui->textBrowser_5->setText(total_time);
}
else {
// 查询失败,显示警告
QMessageBox::warning(this, "警告", "车辆未进入过停车场!", QMessageBox::Yes);
ui->lineEdit->clear();
ui->textBrowser_4->clear();
ui->textBrowser_5->clear();
}
}

@ -0,0 +1,26 @@
#ifndef SERCH_H
#define SERCH_H
#include <QDialog>
namespace Ui {
class serch;
}
class serch : public QDialog
{
Q_OBJECT
public:
explicit serch(QWidget *parent = nullptr);
~serch();
private slots:
void on_pushButton_2_clicked();
void on_pushButton_clicked();
private:
Ui::serch *ui;
};
#endif // SERCH_H

@ -0,0 +1,333 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>serch</class>
<widget class="QDialog" name="serch">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>420</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>600</width>
<height>420</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>600</width>
<height>420</height>
</size>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(255, 255, 255);</string>
</property>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>300</x>
<y>0</y>
<width>300</width>
<height>420</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>20</x>
<y>310</y>
<width>271</width>
<height>81</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>50</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>143434</width>
<height>16777215</height>
</size>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QPushButton" name="pushButton">
<property name="minimumSize">
<size>
<width>81</width>
<height>40</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>81</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<family>Candara</family>
<pointsize>16</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(200, 255, 190, 255),
stop:1 rgbargb(255, 255, 255));
border:0px groove gray;border-radius:
7px;padding:2px 4px;
font: 16pt &quot;Candara&quot;;</string>
</property>
<property name="text">
<string>查询</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="minimumSize">
<size>
<width>75</width>
<height>40</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>81</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<family>Candara</family>
<pointsize>16</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(200, 255, 190, 255),
stop:1 rgbargb(255, 255, 255));
border:0px groove gray;border-radius:
7px;padding:2px 4px;
font: 16pt &quot;Candara&quot;;</string>
</property>
<property name="text">
<string>返回</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>20</x>
<y>230</y>
<width>131</width>
<height>31</height>
</rect>
</property>
<property name="font">
<font>
<family>微软雅黑</family>
<pointsize>18</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">font: 18pt &quot;微软雅黑&quot;;</string>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;停车时长(分钟)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
<widget class="QTextBrowser" name="textBrowser_5">
<property name="geometry">
<rect>
<x>70</x>
<y>260</y>
<width>200</width>
<height>40</height>
</rect>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<family>微软雅黑</family>
<pointsize>12</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(254, 255, 190, 255),
stop:1 rgbargb(170, 255, 255));
border:1px groove gray;border-radius:
7px;padding:2px 4px;
font: 12pt &quot;微软雅黑&quot;;
</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>-10</x>
<y>130</y>
<width>141</width>
<height>31</height>
</rect>
</property>
<property name="font">
<font>
<family>微软雅黑</family>
<pointsize>18</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">font: 18pt &quot;微软雅黑&quot;;</string>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;进入次数:&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
<widget class="QTextBrowser" name="textBrowser_4">
<property name="geometry">
<rect>
<x>70</x>
<y>160</y>
<width>200</width>
<height>40</height>
</rect>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<family>微软雅黑</family>
<pointsize>12</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(254, 255, 190, 255),
stop:1 rgbargb(170, 255, 255));
border:1px groove gray;border-radius:
7px;padding:2px 4px;
font: 12pt &quot;微软雅黑&quot;;
</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit">
<property name="geometry">
<rect>
<x>70</x>
<y>60</y>
<width>200</width>
<height>40</height>
</rect>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<family>微软雅黑</family>
<pointsize>12</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(254, 255, 190, 255),
stop:1 rgbargb(170, 255, 255));
border:1px groove gray;border-radius:
7px;padding:2px 4px;
font: 12pt &quot;微软雅黑&quot;;
</string>
</property>
<property name="placeholderText">
<string>请输入车牌号</string>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>0</x>
<y>30</y>
<width>101</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<family>微软雅黑</family>
<pointsize>18</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">font: 18pt &quot;微软雅黑&quot;;</string>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;车牌号:&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>

@ -0,0 +1,85 @@
#include "sign_in.h"
#include "ui_sign_in.h"
#include <QMessageBox>
#include <QSqlQuery>
#include <QString>
#include <QDebug>
#include <QGraphicsDropShadowEffect> //设置阴影
sign_in::sign_in(QWidget *parent) : QDialog(parent),
ui(new Ui::sign_in)
{
ui->setupUi(this);
this->setWindowTitle("注册");
// 使用在 main 中创建的数据库连接
QSqlDatabase db = QSqlDatabase::database("text01");
if (!db.isOpen()) {
QMessageBox::warning(this, "警告", "数据库连接失败");
} else {
qDebug() << "数据库连接成功!";
}
//插入图片
QPixmap house(":/house.jpg");
ui->label_3->setPixmap(house);
//设置阴影
QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);
shadow->setOffset(-3, 0);
shadow->setColor(QColor("#888888"));
shadow->setBlurRadius(30);
ui->label_3->setGraphicsEffect(shadow);
this->setWindowFlags(Qt::WindowCloseButtonHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint);
}
sign_in::~sign_in()
{
delete ui;
}
void sign_in::on_pushButton_2_clicked()
{
this->close();
}
void sign_in::on_pushButton_clicked()
{
QString namestr = ui->lineEdit->text();
QString password = ui->lineEdit_2->text();
// 使用在 main 中创建的数据库连接
QSqlDatabase db = QSqlDatabase::database("text01");
if (!db.isOpen()) {
QMessageBox::warning(this, tr("警告!"), tr("数据库未打开!"), QMessageBox::Yes);
return;
}
QSqlQuery query(db);
QString userQuery = QString("select * from user where name='%1' ").arg(namestr);
if (query.exec(userQuery) && query.next()) {
QMessageBox::warning(this, tr("警告!"), tr("用户名已存在!"), QMessageBox::Yes);
ui->lineEdit->clear();
ui->lineEdit_2->clear();
ui->lineEdit->setFocus();
} else {
if (namestr == "" || password == "") {
QMessageBox::warning(this, tr("警告!"), tr("用户名或密码不能为空!"), QMessageBox::Yes);
ui->lineEdit->clear();
ui->lineEdit_2->clear();
ui->lineEdit->setFocus();
} else {
QString insertStr = QString("insert into user(name, pass) values('%1', '%2')").arg(namestr).arg(password);
if (query.exec(insertStr)) {
close();
} else {
QMessageBox::warning(this, tr("警告!"), tr("注册失败!"), QMessageBox::Yes);
}
}
}
}

@ -0,0 +1,27 @@
#ifndef SIGN_IN_H
#define SIGN_IN_H
#include <QDialog>
namespace Ui {
class sign_in;
}
class sign_in : public QDialog
{
Q_OBJECT
public:
explicit sign_in(QWidget *parent = nullptr);
~sign_in();
private slots:
void on_pushButton_2_clicked();
void on_pushButton_clicked();
private:
Ui::sign_in *ui;
};
#endif // SIGN_IN_H

@ -0,0 +1,211 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>sign_in</class>
<widget class="QDialog" name="sign_in">
<property name="enabled">
<bool>true</bool>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>420</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>600</width>
<height>420</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>600</width>
<height>520</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(255, 255, 255);</string>
</property>
<widget class="QWidget" name="layoutWidget_2">
<property name="geometry">
<rect>
<x>300</x>
<y>260</y>
<width>271</width>
<height>111</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QPushButton" name="pushButton">
<property name="minimumSize">
<size>
<width>81</width>
<height>40</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>81</width>
<height>40</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(64, 145, 252, 255),
stop:1 rgbargb(255, 170, 127));
color: rgb(255, 255, 255);
border:0px groove gray;border-radius:
7px;padding:2px 4px;
font: 14pt &quot;Candara&quot;;</string>
</property>
<property name="text">
<string>注册</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="minimumSize">
<size>
<width>81</width>
<height>40</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>81</width>
<height>16777215</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(64, 145, 252, 255),
stop:1 rgbargb(255, 170, 127));
color: rgb(255, 255, 255);
border:0px groove gray;border-radius:
7px;padding:2px 4px;
font: 14pt &quot;Candara&quot;;</string>
</property>
<property name="text">
<string>返回</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QLineEdit" name="lineEdit">
<property name="geometry">
<rect>
<x>320</x>
<y>100</y>
<width>241</width>
<height>51</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(247, 247, 247);
border:1px groove gray;border-radius:
7px;padding:2px 4px;
font: 10pt &quot;微软雅黑&quot;;</string>
</property>
<property name="placeholderText">
<string>由小写字母组成</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_2">
<property name="geometry">
<rect>
<x>320</x>
<y>210</y>
<width>241</width>
<height>51</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(247, 247, 247);
border:1px groove gray;border-radius:
7px;padding:2px 4px;
font: 10pt &quot;微软雅黑&quot;;</string>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
<property name="placeholderText">
<string>由数字组成</string>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>-10</x>
<y>0</y>
<width>300</width>
<height>420</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>320</x>
<y>60</y>
<width>89</width>
<height>31</height>
</rect>
</property>
<property name="font">
<font>
<family>微软雅黑</family>
<pointsize>14</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">font: 14pt &quot;微软雅黑&quot;;</string>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;用户名&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>320</x>
<y>170</y>
<width>89</width>
<height>31</height>
</rect>
</property>
<property name="font">
<font>
<family>微软雅黑</family>
<pointsize>14</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">font: 14pt &quot;微软雅黑&quot;;</string>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;密码&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>

@ -0,0 +1,14 @@
#include "signin.h"
#include "ui_signin.h"
SignIn::SignIn(QWidget *parent) :
QDialog(parent),
ui(new Ui::SignIn)
{
ui->setupUi(this);
}
SignIn::~SignIn()
{
delete ui;
}

@ -0,0 +1,22 @@
#ifndef SIGNIN_H
#define SIGNIN_H
#include <QDialog>
namespace Ui {
class SignIn;
}
class SignIn : public QDialog
{
Q_OBJECT
public:
explicit SignIn(QWidget *parent = 0);
~SignIn();
private:
Ui::SignIn *ui;
};
#endif // SIGNIN_H

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>SignIn</class>
<widget class="QDialog" name="SignIn">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>60</x>
<y>30</y>
<width>291</width>
<height>141</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>15</pointsize>
</font>
</property>
<property name="text">
<string>用户名</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="font">
<font>
<pointsize>15</pointsize>
</font>
</property>
<property name="text">
<string>密码</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLineEdit" name="lineEdit"/>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_2"/>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="layoutWidget_2">
<property name="geometry">
<rect>
<x>60</x>
<y>190</y>
<width>301</width>
<height>81</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QPushButton" name="pushButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>注册</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="minimumSize">
<size>
<width>0</width>
<height>50</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>退出</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui>

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

@ -0,0 +1,82 @@
#include "widget.h"
#include "ui_widget.h"
#include "ai.h"
#include <QDebug>
#include <QSqlQuery>
#include <QNetworkRequest>
#include <QPixmap>
#include <QMovie> // 包含QMovie的头文件
#include <QGraphicsDropShadowEffect> //设置阴影
#include "choose.h"
Widget::Widget(choose* cPage,QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget),choosePage(cPage)
{
ui->setupUi(this);
car_ai=new ai;
ser=new serch;
num=new number_of_car;
connect(this,SIGNAL(cnt_signal()),num,SLOT(cnt_slot()));
this->setWindowTitle("主界面");
//动图
QMovie *movie = new QMovie(":/huoche.png");
ui->label_1->setMovie(movie);
movie->start();
//设置阴影
QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);
shadow->setOffset(-3, 0);
shadow->setColor(QColor("#fcc9ff"));
shadow->setBlurRadius(80);
ui->label_1->setGraphicsEffect(shadow);
QMovie *movie2 = new QMovie(":/pig.gif");
ui->label_3->setMovie(movie2);
movie2->start();
connect(movie2, &QMovie::finished, [=]() {
// 当动画播放完成时,重新启动动画
movie2->start();
});
}
Widget::~Widget()
{
delete ui;
delete car_ai;
delete ser;
delete rules;
delete num;
}
void Widget::on_pushButton_clicked()
{
car_ai->show();
}
void Widget::on_pushButton_2_clicked()
{
emit cnt_signal();
num->exec();
}
void Widget::on_pushButton_4_clicked()
{
if (choosePage) {
choosePage->show(); // 显示已有 choose 页面,音乐不会重复
this->hide();
}
}
void Widget::on_pushButton_5_clicked()
{
ser->exec();
}

@ -0,0 +1,49 @@
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include "message.h"
#include "ai.h"
#include "number_of_car.h"
#include "charge_rules.h"
#include "serch.h"
class choose;
namespace Ui {
class Widget;
}
class message;
class ai;
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(choose* cPage,QWidget *parent);
~Widget();
private slots:
void on_pushButton_clicked();
void on_pushButton_2_clicked();
void on_pushButton_4_clicked();
void on_pushButton_5_clicked();
private:
Ui::Widget *ui;
ai *car_ai;
number_of_car *num;
cost *pay;
charge_rules *rules;
serch *ser;
choose* choosePage = nullptr;
signals:
void cnt_signal();
};
#endif // WIDGET_H

@ -0,0 +1,224 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Widget</class>
<widget class="QWidget" name="Widget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>600</width>
<height>420</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>600</width>
<height>420</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="windowTitle">
<string>Widget</string>
</property>
<property name="styleSheet">
<string notr="true">background-color: rgb(255, 255, 255);</string>
</property>
<widget class="QLabel" name="label_1">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>300</width>
<height>420</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>380</x>
<y>-20</y>
<width>281</width>
<height>221</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>320</x>
<y>110</y>
<width>151</width>
<height>41</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(64, 145, 252, 255),
stop:1 rgbargb(255, 170, 127));
font: 20pt &quot;黑体&quot;;</string>
</property>
<property name="text">
<string>请选择您的操作</string>
</property>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>350</x>
<y>150</y>
<width>201</width>
<height>261</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>60</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>1514664</width>
<height>16777215</height>
</size>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="minimumSize">
<size>
<width>0</width>
<height>40</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>200</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<family>Candara</family>
<pointsize>16</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(64, 145, 252, 255),
stop:1 rgbargb(255, 170, 127));
color: rgb(255, 255, 255);
border:0px groove gray;border-radius:
7px;padding:2px 4px;
font: 16pt &quot;Candara&quot;;</string>
</property>
<property name="text">
<string>车场信息</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_5">
<property name="minimumSize">
<size>
<width>0</width>
<height>40</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>200</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<family>Candara</family>
<pointsize>16</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(64, 145, 252, 255),
stop:1 rgbargb(255, 170, 127));
color: rgb(255, 255, 255);
border:0px groove gray;border-radius:
7px;padding:2px 4px;
font: 16pt &quot;Candara&quot;;</string>
</property>
<property name="text">
<string>查询车辆</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_4">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>200</width>
<height>40</height>
</size>
</property>
<property name="font">
<font>
<family>Candara</family>
<pointsize>16</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
</font>
</property>
<property name="styleSheet">
<string notr="true">background-color: qlineargradient(spread:pad, x1:0.52, y1:1, x2:0.54, y2:0,
stop:0.0112994 rgba(64, 145, 252, 255),
stop:1 rgbargb(255, 170, 127));
color: rgb(255, 255, 255);
border:0px groove gray;border-radius:
7px;padding:2px 4px;
font: 16pt &quot;Candara&quot;;</string>
</property>
<property name="text">
<string>返回</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>

Binary file not shown.

Binary file not shown.
Loading…
Cancel
Save