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

88 lines
2.2 KiB
C
Raw Normal View History

2025-12-27 09:34:02 +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
*/
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();
QString getDeviceName() const { return m_deviceName; }
private:
void setupUI();
QString m_deviceName;
QLabel* m_nameLabel = nullptr;
QLabel* m_heightLabel = nullptr;
QLabel* m_archPosLabel = nullptr; // 拱点位置
QLabel* m_upPosLabel = nullptr; // 上位置
QLabel* m_downPosLabel = nullptr; // 下位置
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);
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;
};
#endif // MEASURERESULTLISTWIDGET_H