joinmeetingdialog.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #ifndef JOINMEETINGDIALOG_H
  2. #define JOINMEETINGDIALOG_H
  3. #include <QDialog>
  4. #include <QVBoxLayout>
  5. #include <QHBoxLayout>
  6. #include <QLabel>
  7. #include <QLineEdit>
  8. #include <QPushButton>
  9. #include <QListWidget>
  10. #include <QTabWidget>
  11. #include <QGroupBox>
  12. #include <QStringList>
  13. class JoinMeetingDialog : public QDialog
  14. {
  15. Q_OBJECT
  16. public:
  17. explicit JoinMeetingDialog(QWidget *parent = nullptr);
  18. ~JoinMeetingDialog();
  19. // 获取选择的会议ID
  20. QString getSelectedMeetingId() const;
  21. // 设置可用的会议列表
  22. void setAvailableMeetings(const QStringList &meetingIds, const QStringList &meetingNames);
  23. public slots:
  24. void accept() override;
  25. void reject() override;
  26. private slots:
  27. void onMeetingItemClicked();
  28. void onMeetingIdChanged();
  29. void validateInput();
  30. private:
  31. void setupUI();
  32. void applyStyles();
  33. // UI组件
  34. QVBoxLayout *m_mainLayout;
  35. QTabWidget *m_tabWidget;
  36. // 手动输入标签页
  37. QWidget *m_manualTab;
  38. QVBoxLayout *m_manualLayout;
  39. QLabel *m_manualLabel;
  40. QLineEdit *m_meetingIdEdit;
  41. // 选择会议标签页
  42. QWidget *m_selectTab;
  43. QVBoxLayout *m_selectLayout;
  44. QLabel *m_selectLabel;
  45. QListWidget *m_meetingListWidget;
  46. // 按钮
  47. QHBoxLayout *m_buttonLayout;
  48. QPushButton *m_joinButton;
  49. QPushButton *m_cancelButton;
  50. // 数据
  51. QString m_selectedMeetingId;
  52. QStringList m_meetingIds;
  53. QStringList m_meetingNames;
  54. };
  55. #endif // JOINMEETINGDIALOG_H