mirror of
https://gitee.com/Zhaoxin59/my-chat_-client.git
synced 2026-02-14 00:51:48 +08:00
95 lines
1.8 KiB
C++
95 lines
1.8 KiB
C++
#ifndef MAINWIDGET_H
|
|
#define MAINWIDGET_H
|
|
|
|
#include <QWidget>
|
|
#include <QPushButton>
|
|
#include <QLineEdit>
|
|
#include <QMainWindow>
|
|
|
|
#include "debug.h"
|
|
#include "messageeditarea.h"
|
|
#include "messageshowarea.h"
|
|
#include "selfinfowidget.h"
|
|
#include "sessionfriendarea.h"
|
|
#include "groupsessiondetailwidget.h"
|
|
#include "addfrienddialog.h"
|
|
#include "model/datacenter.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;
|
|
|
|
//显示会话详情按钮
|
|
QPushButton* extraBtn;
|
|
|
|
//消息展示区
|
|
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
|