compareitemlistdialog.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #ifndef COMPAREITEMLISTDIALOG_H
  2. #define COMPAREITEMLISTDIALOG_H
  3. #include <QStandardItemModel>
  4. #include <QSortFilterProxyModel>
  5. #include "DialogBase.h"
  6. #include "GlobalVariable.h"
  7. /**
  8. * @brief 自定义排序类
  9. *
  10. */
  11. class CSortModel : public QSortFilterProxyModel
  12. {
  13. Q_OBJECT
  14. public:
  15. explicit CSortModel(QObject *parent = nullptr) : QSortFilterProxyModel(parent) {}
  16. ~CSortModel() {}
  17. protected:
  18. /* 重载比较函数 */
  19. bool lessThan(const QModelIndex &left, const QModelIndex &right) const override;
  20. };
  21. /**
  22. * @brief 对比项列表弹窗
  23. *
  24. */
  25. namespace Ui {
  26. class CompareItemListWidget;
  27. }
  28. class CompareItemListDialog : public DialogBase
  29. {
  30. Q_OBJECT
  31. public:
  32. explicit CompareItemListDialog(QWidget *parent = nullptr);
  33. ~CompareItemListDialog() override;
  34. private slots:
  35. /* 点击了关闭按钮 */
  36. void do_pBtn_close_Clicked();
  37. /* 点击了添加按钮 */
  38. void do_pBtn_add_Clicked();
  39. /* 点击了删除按钮 */
  40. void do_pBtn_delete_Clicked();
  41. /* 点击了编辑按钮 */
  42. void do_pBtn_edit_Clicked();
  43. private:
  44. /* 初始化表格 */
  45. void initTable();
  46. /* 添加一行 */
  47. void addRow(CompareItemTableItem_t item);
  48. private:
  49. Ui::CompareItemListWidget *ui;
  50. QStandardItemModel* m_model; /* 表格模型,存储数据 */
  51. CSortModel* m_sortModel; /* 排序模型 */
  52. };
  53. #endif // COMPAREITEMLISTDIALOG_H