Files
MyChat_Client/mainwidget.h
2025-05-29 21:31:28 +08:00

86 lines
1.6 KiB
C++

#ifndef MAINWIDGET_H
#define MAINWIDGET_H
#include <QWidget>
#include <QPushButton>
#include <QLineEdit>
#include "debug.h"
#include "messageeditarea.h"
#include "messageshowarea.h"
#include "SelfInfoWidget.h"
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;
//消息展示区
MessageShowArea* messageShowArea;
//消息编辑区
MessageEditArea* messageEditArea;
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