meetingselectionwidget.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #ifndef MEETINGSELECTIONWIDGET_H
  2. #define MEETINGSELECTIONWIDGET_H
  3. #include <QWidget>
  4. #include <QVBoxLayout>
  5. #include <QHBoxLayout>
  6. #include <QPushButton>
  7. #include <QLabel>
  8. #include <QFrame>
  9. #include <QStringList>
  10. class MeetingSelectionWidget : public QWidget
  11. {
  12. Q_OBJECT
  13. public:
  14. explicit MeetingSelectionWidget(QWidget *parent = nullptr);
  15. ~MeetingSelectionWidget();
  16. // 设置用户角色
  17. void setUserRoles(const QStringList &roles);
  18. // 设置用户信息
  19. void setUserInfo(const QString &username, const QString &userId);
  20. signals:
  21. // 用户选择加入会议
  22. void joinMeetingRequested();
  23. // 用户选择创建会议
  24. void createMeetingRequested();
  25. // 用户选择退出登录
  26. void logoutRequested();
  27. private slots:
  28. void onJoinMeetingClicked();
  29. void onCreateMeetingClicked();
  30. void onLogoutClicked();
  31. private:
  32. void setupUI();
  33. void updateButtonsVisibility();
  34. void applyStyles();
  35. // UI组件
  36. QVBoxLayout *m_mainLayout;
  37. QLabel *m_titleLabel;
  38. QLabel *m_welcomeLabel;
  39. QFrame *m_buttonFrame;
  40. QVBoxLayout *m_buttonLayout;
  41. QPushButton *m_joinMeetingBtn;
  42. QPushButton *m_createMeetingBtn;
  43. QPushButton *m_logoutBtn;
  44. // 用户信息
  45. QStringList m_userRoles;
  46. QString m_username;
  47. QString m_userId;
  48. // 是否为管理员
  49. bool m_isAdmin;
  50. };
  51. #endif // MEETINGSELECTIONWIDGET_H