Files
MyChat_Client/choosefrienddialog.h
2025-06-01 12:13:00 +08:00

56 lines
1.3 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 QIcon& avatar, const QString& name, bool checked);
void paintEvent(QPaintEvent* event) override;
void enterEvent(QEnterEvent* event) override;
void leaveEvent(QEvent* event) override;
private:
bool isHover = false;
QCheckBox* checkBox;
QPushButton* avatarBtn;
QLabel* nameLabel;
ChooseFriendDialog* owner; //记录了哪个QWidget持有这个Item此处应该是ChooseFriendDialog
};
class ChooseFriendDialog : public QDialog
{
Q_OBJECT
public:
ChooseFriendDialog(QWidget *parent);
void initLeft(QHBoxLayout* layout);
void initRight(QHBoxLayout* layout);
void addFriend(const QIcon& avatar, const QString& name, bool checked);
void addSelectedFriend(const QIcon& avatar, const QString& name);
private:
QWidget* totalContainer;
QWidget* selectedContainer;
};