// // Created by rigoligo on 2021/5/9. // #ifndef _SPKMAINWINDOW_H_ #define _SPKMAINWINDOW_H_ #include "spkwindow.h" #include #include #include #include #include "spkpageqsstest.h" namespace SpkUi { class SpkCategoryButton : public QPushButton { Q_OBJECT public: SpkCategoryButton(QWidget *parent = nullptr); void SetIcon(QPixmap); void SetText(QString); static constexpr int Spacing = 8; private: QHBoxLayout *mLayout; QLabel *mIcon, *mText; }; class SpkCategorySelector : public QWidget { Q_OBJECT public: SpkCategorySelector(QWidget *parent = nullptr); void AddButton(QString aBtnText, int aCategoryId = 0, QPixmap *aBtnIcon = nullptr); void DeleteAllButtons(); signals: void CategorySelected(int); private: QVBoxLayout *mBtnLayout; QButtonGroup *mGroup; QList mBtnList; }; class SpkMainWidget : public QFrame { Q_OBJECT public: SpkMainWidget(QWidget *parent = nullptr); QHBoxLayout *HorizontalDivide; SpkCategorySelector *CategoryWidget; QVBoxLayout *VLayCategoryButtons, *VLayMain; SpkTitleBar *TitleBar; QStackedWidget *Pager; //Pages SpkPageQssTest *PageQssTest; }; } class SpkMainWindow : public SpkWindow { Q_OBJECT private: SpkUi::SpkMainWidget *ui; public: SpkMainWindow(QWidget *parent = nullptr); void PopulateCategories(QJsonObject); }; #endif //_SPKMAINWINDOW_H_