#ifndef TEARINGDATATABLEWIDGET_H #define TEARINGDATATABLEWIDGET_H #include #include #include #include #include #include #include #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 &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