Files
MyChat_Client/choosefrienddialog.h
2025-09-09 15:37:57 +08:00

73 lines
1.7 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include <QDialog>
#include <QWidget>
#include <QHBoxLayout>
#include <QScrollArea>
#include <QScrollBar>
#include <QPushButton>
#include <QPainter>
#include <QCheckBox>
#include <QLabel>
#include "debug.h"
class ChooseFriendDialog;
////////////////////////////////////////////////
/// 选择好友窗口中的一个 元素/好友项
////////////////////////////////////////////////
class ChooseFriendItem : public QWidget {
Q_OBJECT
public:
ChooseFriendItem(ChooseFriendDialog* owner, const QString& userId, const QIcon& avatar, const QString& name, bool checked);
void paintEvent(QPaintEvent* event) override;
void enterEvent(QEnterEvent* event) override;
void leaveEvent(QEvent* event) override;
QString& getUserId() {
return userId;
}
QCheckBox* getCheckBox() {
return checkBox;
}
private:
bool isHover = false;
QCheckBox* checkBox;
QPushButton* avatarBtn;
QLabel* nameLabel;
ChooseFriendDialog* owner; //记录了哪个QWidget持有这个Item此处应该是ChooseFriendDialog
QString userId; //记录成员id用于删除唯一指定的成员Item
};
class ChooseFriendDialog : public QDialog
{
Q_OBJECT
public:
ChooseFriendDialog(QWidget *parent, const QString& userId);
void initLeft(QHBoxLayout* layout);
void initRight(QHBoxLayout* layout);
void initData();
void addFriend(const QString& userId, const QIcon& avatar, const QString& name, bool checked);
void addSelectedFriend(const QString& userId, const QIcon& avatar, const QString& name);
void deleteSelectedFriend(const QString& userId);
void clickOkBtn();
QList<QString> generateMemberList();
private:
QWidget* totalContainer;
QWidget* selectedContainer;
//当前选择窗口是点击哪个用户弹出的
QString userId;
};