#pragma once #include #include #include #include #include #include #include #include #include #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; };