QsTreeWidget.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #pragma once
  2. #include <QtWidgets/qwidget.h>
  3. #include <string>
  4. #include <Kaguya/kaguya.hpp>
  5. #include "QsElement.h"
  6. #include "QsWidget.h"
  7. #include "QsScrollBar.h"
  8. #include "yqt/treewidget.h"
  9. class QsTreeWidget;
  10. class QsHeaderView;
  11. class QsTreeWidgetItem
  12. {
  13. public:
  14. QsTreeWidgetItem(QTreeWidgetItem* item,QsTreeWidget* parent = nullptr,bool create = true);
  15. ~QsTreeWidgetItem();
  16. QTreeWidgetItem* item() { return m_item; }
  17. friend class QsTreeWidget;
  18. bool empty() { return m_item == nullptr; }
  19. private:
  20. static void regist(kaguya::State& T);
  21. private:
  22. void setText(int column, const std::string& title);
  23. std::string text(int column);
  24. void addChild(QsTreeWidgetItem* item);
  25. void setStringData(int column, int role, const std::string& data);
  26. void setIntData(int column, int role,int data);
  27. std::string stringData(int column, int role);
  28. int intData(int column, int role);
  29. void setExpanded(bool expand);
  30. void setTextColor(int column, const std::string& hex_color_text);
  31. private:
  32. QTreeWidgetItem* m_item = nullptr;
  33. };
  34. class QsTreeWidget :public ylib::qt::TreeWidget,public QsElement
  35. {
  36. public:
  37. QsTreeWidget(QsWidget* parent = nullptr);
  38. ~QsTreeWidget();
  39. static void regist(kaguya::State& T);
  40. private:
  41. void setItemWidget(QsTreeWidgetItem* item,int column,QsWidget* widget);
  42. void addTopLevelItem(QsTreeWidgetItem* item);
  43. void onItemClicked(kaguya::LuaFunction callback);
  44. void setSelectionMode(int mod);
  45. QsScrollBar verticalScrollBar();
  46. QsScrollBar horizontalScrollBar();
  47. QsTreeWidgetItem currentItem();
  48. QsHeaderView header();
  49. // 通过 QsElement 继承
  50. virtual QsWidget* toQ() override{ return appQs(new QsWidget(this)); }
  51. private:
  52. kaguya::LuaFunction m_onItemClicked;
  53. };