Files
AiAnalysis/mainwindow.h
iorebuild b6cd730feb refactor: 去掉多余的显示点数控件,来一个点画一个点,自动滚动
- 移除SpinBox和onDisplayPointsChanged
- 内部滚动窗口固定3000个点,数据无限追加
- 收到UDP包立即刷新绘图
2026-04-30 13:09:01 +08:00

65 lines
1.3 KiB
C++

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QLineEdit>
#include <QPushButton>
#include <QLabel>
#include <QCheckBox>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QGridLayout>
#include <QGroupBox>
#include <QFileDialog>
#include <QMessageBox>
class PlotWidget;
class UdpReceiver;
class DataManager;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void onStartStop();
void onOpenFile();
void onClear();
void onDataReceived(const QByteArray &data);
void onToggleChannel(int channel, bool visible);
private:
void setupUi();
void startReceiving();
void stopReceiving();
void processDataLine(const QString &line);
void loadAndDisplayFile(const QString &filePath);
// 控件
QLineEdit *m_portEdit;
QPushButton *m_startStopBtn;
QPushButton *m_openFileBtn;
QPushButton *m_clearBtn;
QLabel *m_statusLabel;
QLabel *m_packetLabel;
PlotWidget *m_plotWidget;
// 功能组件
UdpReceiver *m_udpReceiver;
DataManager *m_dataManager;
// 状态
bool m_isReceiving;
int m_packetCount;
QString m_dataDir;
// 通道选择复选框
QList<QCheckBox*> m_channelChecks;
};
#endif // MAINWINDOW_H