GrabBag/App/BeltTearing/BeltTearingApp/widgets/TearingDataTableWidget.h
2025-09-24 22:36:13 +08:00

52 lines
1.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef TEARINGDATATABLEWIDGET_H
#define TEARINGDATATABLEWIDGET_H
#include <QWidget>
#include <QTableWidget>
#include <QTableWidgetItem>
#include <QHeaderView>
#include <QJsonObject>
#include <QString>
#include <vector>
#include "IStatusUpdate.h"
// 自定义TableWidgetItem类支持按数字值排序
class NumericTableWidgetItem : public QTableWidgetItem
{
public:
NumericTableWidgetItem(const QString &text);
bool operator<(const QTableWidgetItem &other) const override;
private:
double toDouble() const;
};
class TearingDataTableWidget : public QWidget
{
Q_OBJECT
public:
explicit TearingDataTableWidget(QWidget *parent = nullptr);
~TearingDataTableWidget();
void addData(const TearingData &data);
void addData(const std::vector<TearingData> &dataList);
void addData(const QJsonObject &data);
void clearData();
private:
void setupUI();
void setupTable();
QString getTearStatusText(const QString &status);
QString getTearTypeText(const QString &type);
int findExistingRowById(const QString &id);
// 排序相关的私有方法
void connectHeaderSignals();
QTableWidget *m_tableWidget;
};
#endif // TEARINGDATATABLEWIDGET_H