RB_ningyang/mainwindow.h

193 lines
4.6 KiB
C
Raw Permalink Normal View History

2026-01-22 11:08:28 +00:00
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "SerialConfig.h"
#include "serialportmanager.h"
#include <QSerialPort>
#include <QtCharts> // 引入所有QtCharts绘制的头文件也可以单独引入某一个头文件
#include <QTimer>
#include <QMediaPlayer>
#include <QMouseEvent>
#include <QMessageBox>
#include <QResizeEvent>
QT_BEGIN_NAMESPACE
namespace Ui
{
class MainWindow;
}
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
void keyPressEvent(QKeyEvent *event)
{
if (event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter)
{
QString barcode = barStr;
barStr.clear();
dispscan(barcode);
qDebug() << "Barcode scanned:" << barcode;
}
else
{
barStr += event->text();
qDebug() << " scanned:" << barStr;
}
}
void mousePressEvent(QMouseEvent *event)
{
// 关闭扫码提示标签
if (scanTipLabel != nullptr)
{
scanTipLabel->close();
scanTipLabel->deleteLater();
scanTipLabel = nullptr;
}
// 点击空白区域时,让主窗口获得焦点,确保扫码输入正常工作
this->setFocus();
QMainWindow::mousePressEvent(event);
}
void resizeEvent(QResizeEvent *event) override;
void dispscan(const QString barcode);
private slots:
void on_link_button_clicked();
void onLinkButtonClicked();
void on_manual_button_clicked();
void on_auto_button_clicked();
void on_excel_b_clicked();
void on_user_data_button_clicked_func();
void on_res_max_button_clicked_func();
void on_auto_value_button_clicked_func();
// void on_set_tx_button_clicked();
void on_nextPageButton_clicked();
void on_prevPageButton_clicked();
void auto_query();
void updateCharts();
void on_name_button_clicked_func();
void onExportSucceeded();
void onExportFailed(const QString &error);
void get_device_bj_info();
void on_pushButton_2_clicked();
void on_xc_button_clicked_func();
void playQualified();
void playUnqualified();
void playConnState_ok();
void playConnState_no();
void play_get_err();
void play_no_conn_res();
void handleDataRead(const QByteArray &data);
void on_delete_1_button_clicked_func();
void on_delete_2_button_clicked_func();
void on_pwd_button_clicked_func();
void onShowPasswordDialog();
void onPasswordAccepted();
private:
Ui::MainWindow *ui;
SerialPortManager *serialPortManager;
SerialConfig *serialConfigDialog;
QSerialPort *serialPort;
QTimer *timer;
QTimer *timer2;
QLabel *scanTipLabel = nullptr; // 扫码提示标签
QSize initialSize; // 初始窗口大小
QSize designSize; // UI设计基准尺寸
QPieSeries *pieSeries;
QMediaPlayer *player;
QString barStr;
QPushButton *senderButton;
QBarSet *set20;
QBarSet *set21;
QBarSet *set22;
QValueAxis *axisX2;
void disp_IIOT();
void disp_canshu();
int null_cnt = 0;
int serial_error = 0;
bool auto_mode = false; // 自动模式开关
QString auto_mode_flag;
int all_count; // 总检验次数
int auto_cnt; // 自动检验次数
int manual_cnt; // 手动检验次数
int qualified_cnt; // 合格次数
int up_cnt; // 超过范围次数
int down_cnt; // 小于范围次数
double res_value; // 电阻标准值
double res_sd; // 电阻误差范围
double max_res; // 最大电阻范围
double min_res; // 最小电阻范围
double xc_sd; // 线材阻值
int auto_time; // 自动获取时间
QString name; // 检验员
QString chexing; // 车型
QString sm_num; // 护面扫码编号
QString hot_num; // 加热垫扫码编号
QString pwd; // 密码
QString daily_date;
bool daily_one = true;
int daily_cnt = 0;
int daily_cnt_manual = 0;
int daily_qualified_cnt = 0;
int daily_cnt_over = 0;
int daily_cnt_down = 0;
double daily_cnt_max = 0;
double daily_cnt_min = 0;
double daily_qualified_l = 0;
QString detect;
int currentPage = 0;
int rowsPerPage = 21;
int totalRows = 0;
int old_totalRows = 0;
bool uppage = true;
int uppage_cnt = 0;
void updateTableWidget(const QVector<QVariantList> &data);
void get_one_data();
};
#endif // MAINWINDOW_H