mirror of
https://gitee.com/Zhaoxin59/my-chat_-client.git
synced 2026-02-14 00:51:48 +08:00
122 lines
4.1 KiB
C++
122 lines
4.1 KiB
C++
#include "userinfowidget.h"
|
|
|
|
|
|
|
|
UserInfoWidget::UserInfoWidget(const UserInfo& userInfo, QWidget *parent)
|
|
:userInfo(userInfo),
|
|
QDialog(parent)
|
|
{
|
|
// 设置基本的属性
|
|
this->setFixedSize(400, 200);
|
|
this->setWindowTitle("用户详情");
|
|
this->setWindowIcon(QIcon(":/resource/image/logo.png"));
|
|
this->setAttribute(Qt::WA_DeleteOnClose);
|
|
this->move(QCursor::pos());
|
|
|
|
// 创建布局管理器
|
|
QGridLayout* layout = new QGridLayout();
|
|
layout->setVerticalSpacing(10);
|
|
layout->setHorizontalSpacing(20);
|
|
layout->setContentsMargins(50, 20, 0, 0);
|
|
layout->setAlignment(Qt::AlignTop);
|
|
this->setLayout(layout);
|
|
|
|
// 添加头像
|
|
avatarBtn = new QPushButton();
|
|
avatarBtn->setFixedSize(75, 75);
|
|
avatarBtn->setIconSize(QSize(75, 75));
|
|
avatarBtn->setIcon(userInfo.avatar);
|
|
|
|
QString labelStyle = "QLabel { font-weight: 800; padding-left: 20px;}";
|
|
QString btnStyle = "QPushButton { border: 1px solid rgb(100, 100, 100); border-radius: 5px; background-color: rgb(240, 240, 240); color: rgb(0, 0, 0); }";
|
|
btnStyle += "QPushButton:pressed { background-color: rgb(205, 205, 205); }";
|
|
|
|
int width = 80;
|
|
int height = 30;
|
|
|
|
// 添加用户序号
|
|
idTag = new QLabel();
|
|
idTag->setText("序号");
|
|
idTag->setStyleSheet(labelStyle);
|
|
idTag->setFixedSize(width, height);
|
|
idTag->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
|
|
|
idLabel = new QLabel();
|
|
idLabel->setText(userInfo.userId);
|
|
idLabel->setFixedSize(width, height);
|
|
idLabel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
|
|
|
// 添加用户昵称
|
|
nameTag = new QLabel();
|
|
nameTag->setText("昵称");
|
|
nameTag->setStyleSheet(labelStyle);
|
|
nameTag->setFixedSize(width, height);
|
|
nameTag->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
|
|
|
nameLabel = new QLabel();
|
|
nameLabel->setText(userInfo.nickname);
|
|
nameLabel->setFixedSize(width, height);
|
|
nameLabel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
|
|
|
// 设置电话
|
|
phoneTag = new QLabel();
|
|
phoneTag->setText("电话");
|
|
phoneTag->setStyleSheet(labelStyle);
|
|
phoneTag->setFixedSize(width, height);
|
|
phoneTag->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
|
|
|
phoneLabel = new QLabel();
|
|
phoneLabel->setText(userInfo.phone);
|
|
phoneLabel->setFixedSize(width, height);
|
|
phoneLabel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
|
|
|
// 添加功能按钮
|
|
applyBtn = new QPushButton();
|
|
applyBtn->setText("申请好友");
|
|
applyBtn->setFixedSize(80, 30);
|
|
applyBtn->setStyleSheet(btnStyle);
|
|
applyBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
|
|
|
sendMessageBtn = new QPushButton();
|
|
sendMessageBtn->setText("发送消息");
|
|
sendMessageBtn->setFixedSize(80, 30);
|
|
sendMessageBtn->setStyleSheet(btnStyle);
|
|
sendMessageBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
|
|
|
deleteFriendBtn = new QPushButton();
|
|
deleteFriendBtn->setText("删除好友");
|
|
deleteFriendBtn->setFixedSize(80, 30);
|
|
deleteFriendBtn->setStyleSheet(btnStyle);
|
|
deleteFriendBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
|
|
|
// 添加上述内容到布局管理器中
|
|
layout->addWidget(avatarBtn, 0, 0, 3, 1);
|
|
|
|
layout->addWidget(idTag, 0, 1);
|
|
layout->addWidget(idLabel, 0, 2);
|
|
|
|
layout->addWidget(nameTag, 1, 1);
|
|
layout->addWidget(nameLabel, 1, 2);
|
|
|
|
layout->addWidget(phoneTag, 2, 1);
|
|
layout->addWidget(phoneLabel, 2, 2);
|
|
|
|
layout->addWidget(applyBtn, 3, 0);
|
|
layout->addWidget(sendMessageBtn, 3, 1);
|
|
layout->addWidget(deleteFriendBtn, 3, 2);
|
|
|
|
// 9. 初始化按钮的禁用关系
|
|
// 判定依据就是拿着当前用户的 userId, 在 DataCenter 的好友列表中, 查询即可.
|
|
//DataCenter* dataCenter = DataCenter::getInstance();
|
|
//auto* myFriend = dataCenter->findFriendById(this->userInfo.userId);
|
|
//if (myFriend == nullptr) {
|
|
// // 不是好友
|
|
// sendMessageBtn->setEnabled(false);
|
|
// deleteFriendBtn->setEnabled(false);
|
|
//}
|
|
//else {
|
|
// // 是好友
|
|
// applyBtn->setEnabled(false);
|
|
//}
|
|
|
|
} |