#ifndef MAINWIDGET_H #define MAINWIDGET_H #include #include #include QT_BEGIN_NAMESPACE namespace Ui { class MainWidget; } QT_END_NAMESPACE class MainWidget : public QWidget { Q_OBJECT private: //对于单例模式最关键的部分是限制别人创建实例 static MainWidget* instance; public: static MainWidget* getInstance(); public: MainWidget(QWidget *parent = nullptr); ~MainWidget(); private: Ui::MainWidget *ui; //窗口左侧部分 QWidget* windowLeft; //窗口中间部分 QWidget* windowMid; //窗口右侧部分 QWidget* windowRight; //用户头像 QPushButton* userAvatar; //会话标签页按钮 QPushButton* sessionTabBtn; //好友标签页按钮 QPushButton* friendTabBtn; //好友申请标签页按钮 QPushButton* applyTabBtn; //用户搜索框 QLineEdit* searchEdit; //添加好友按钮 QPushButton* addFriendBtn; enum ActiveTab { SESSION_LIST, FRIEND_LIST, APPLY_LIST }; ActiveTab activeTab = SESSION_LIST; void initMainWindow(); void initLeftWindow(); void initMidWindow(); void initRightWindow(); void initSignalSlot(); void switchTabToSession(); void switchTabToFriend(); void switchTabToApply(); void loadSessionList(); void loadFriendList(); void loadApplyList(); }; #endif // MAINWIDGET_H