GrabBag/App/WheelMeasure/WheelMeasureApp/widgets/MeasureResultListWidget.h

107 lines
2.8 KiB
C
Raw Normal View History

2026-03-28 10:49:55 +08:00
#ifndef MEASURERESULTLISTWIDGET_H
#define MEASURERESULTLISTWIDGET_H
#include <QWidget>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QScrollArea>
#include <QMap>
#include <QLabel>
#include <QFrame>
#include "IVrWheelMeasureConfig.h"
/**
* @brief
*/
enum class ResultCardMode {
Wheel = 0, // 显示拱高/到地面高度/上下点位
Correction = 1, // 只显示工装长度
};
2026-03-28 10:49:55 +08:00
/**
* @brief
*/
class DeviceResultCard : public QFrame
{
Q_OBJECT
public:
explicit DeviceResultCard(const QString& deviceName, QWidget* parent = nullptr);
~DeviceResultCard();
void updateResult(const WheelMeasureData& data, bool isValid);
void clearResult();
void setDisplayMode(ResultCardMode mode);
2026-03-28 10:49:55 +08:00
QString getDeviceName() const { return m_deviceName; }
private:
void setupUI();
void applyDisplayMode();
2026-03-28 10:49:55 +08:00
QString m_deviceName;
ResultCardMode m_mode = ResultCardMode::Wheel;
2026-03-28 10:49:55 +08:00
QLabel* m_nameLabel = nullptr;
QLabel* m_heightLabel = nullptr;
QLabel* m_groundHeightLabel = nullptr; // 到地面高度
QLabel* m_archPosLabel = nullptr; // 拱点位置
QLabel* m_upPosLabel = nullptr; // 上点位置
QLabel* m_downPosLabel = nullptr; // 下点位置
QLabel* m_lengthLabel = nullptr; // 工装长度Correction 模式)
2026-03-28 10:49:55 +08:00
QLabel* m_timestampLabel = nullptr;
QLabel* m_statusLabel = nullptr;
};
/**
* @brief
*
*/
class MeasureResultListWidget : public QWidget
{
Q_OBJECT
public:
explicit MeasureResultListWidget(QWidget* parent = nullptr);
~MeasureResultListWidget();
/**
* @brief
* @param deviceNames
*/
void setDeviceList(const QStringList& deviceNames);
/**
* @brief
* @param deviceName
* @param data
* @param isValid
*/
void updateDeviceResult(const QString& deviceName, const WheelMeasureData& data, bool isValid);
/**
* @brief
*/
void clearAllResults();
/**
* @brief
*/
void clearDeviceResult(const QString& deviceName);
/**
* @brief /
*/
void setDisplayMode(ResultCardMode mode);
2026-03-28 10:49:55 +08:00
private:
void setupUI();
DeviceResultCard* findOrCreateCard(const QString& deviceName);
QScrollArea* m_scrollArea = nullptr;
QWidget* m_contentWidget = nullptr;
QVBoxLayout* m_contentLayout = nullptr;
QMap<QString, DeviceResultCard*> m_deviceCards;
ResultCardMode m_mode = ResultCardMode::Wheel;
2026-03-28 10:49:55 +08:00
};
#endif // MEASURERESULTLISTWIDGET_H