panelwidget.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #ifndef PANELWIDGET_H
  2. #define PANELWIDGET_H
  3. #include <QWidget>
  4. #include <QPainterPath>
  5. class QScrollArea;
  6. class QFrame;
  7. class QVBoxLayout;
  8. class QGridLayout;
  9. #ifdef quc
  10. #if (QT_VERSION < QT_VERSION_CHECK(5,7,0))
  11. #include <QtDesigner/QDesignerExportWidget>
  12. #else
  13. #include <QtUiPlugin/QDesignerExportWidget>
  14. #endif
  15. class QDESIGNER_WIDGET_EXPORT PanelWidget : public QWidget
  16. #else
  17. class PanelWidget : public QWidget
  18. #endif
  19. {
  20. Q_OBJECT
  21. // Q_PROPERTY(int margin READ getMargin WRITE setMargin)
  22. // Q_PROPERTY(int space READ getSpace WRITE setSpace)
  23. // Q_PROPERTY(bool autoWidth READ getAutoWidth WRITE setAutoWidth)
  24. // Q_PROPERTY(bool autoHeight READ getAutoHeight WRITE setAutoHeight)
  25. public:
  26. explicit PanelWidget(QWidget *parent = 0);
  27. protected:
  28. void resizeEvent(QResizeEvent *);
  29. private:
  30. QScrollArea *scrollArea; //滚动区域
  31. QWidget *scrollAreaWidgetContents; //滚动区域载体
  32. QFrame *frame; //放置设备的框架,自动变宽变高
  33. QVBoxLayout *verticalLayout; //设备面板总布局
  34. QGridLayout *gridLayout; //设备表格布局
  35. int margin; //边距
  36. int space; //设备之间的间隔
  37. bool autoWidth; //宽度自动拉伸
  38. bool autoHeight; //高度自动拉伸
  39. QList<QWidget *> widgets; //设备面板对象集合
  40. int columnCount; //面板列数
  41. public:
  42. QSize sizeHint() const;
  43. QSize minimumSizeHint() const;
  44. int getMargin() const;
  45. int getSpace() const;
  46. bool getAutoWidth() const;
  47. bool getAutoHeight() const;
  48. QList<QWidget *> getWidgets();
  49. int getColumnCount();
  50. void clearWidgets();
  51. public Q_SLOTS:
  52. void setWidget(QList<QWidget *> widgets, int columnCount);
  53. void setMargin(int left, int top, int right, int bottom);
  54. void setMargin(int margin);
  55. void setSpace(int space);
  56. void setAutoWidth(bool autoWidth);
  57. void setAutoHeight(bool autoHeight);
  58. };
  59. #endif // PANELWIDGET_H