mirror of
https://gitee.com/Zhaoxin59/my-chat_-client.git
synced 2026-02-13 16:41:48 +08:00
251 lines
8.1 KiB
C++
251 lines
8.1 KiB
C++
#include "selfinfowidget.h"
|
|
|
|
SelfInfoWidget::SelfInfoWidget(QWidget *parent)
|
|
: QDialog(parent)
|
|
{
|
|
//设置整个窗口的属性
|
|
this->setFixedSize(500, 200);
|
|
this->setWindowTitle("个人信息");
|
|
this->setWindowIcon(QIcon(":/resource/image/logo.png"));
|
|
//窗口被关闭时,自动销毁这个对话框对象
|
|
this->setAttribute(Qt::WA_DeleteOnClose);
|
|
//把窗口移动到鼠标当前的位置
|
|
this->move(QCursor::pos());
|
|
|
|
//创建布局管理器
|
|
QGridLayout* layout = new QGridLayout();
|
|
//layout->setSpacing(0);
|
|
layout->setHorizontalSpacing(10);
|
|
layout->setVerticalSpacing(3);
|
|
layout->setContentsMargins(20, 20, 20, 0);
|
|
layout->setAlignment(Qt::AlignTop);
|
|
this->setLayout(layout);
|
|
|
|
//创建头像
|
|
avatarBtn = new QPushButton();
|
|
avatarBtn->setFixedSize(75, 75);
|
|
avatarBtn->setIconSize(QSize(75, 75));
|
|
avatarBtn->setIcon(QIcon(":/resource/image/defaultAvatar.png"));
|
|
avatarBtn->setStyleSheet("QPushButton { border: none; background-color: transparent; }");
|
|
|
|
QString labelStyle = "QLabel { font-size: 14px; font-weight: 800; }";
|
|
QString btnStyle = "QPushButton {border: none; background-color: transparent; }";
|
|
btnStyle += "QPushButton:pressed { background-color: rgb(210, 210, 210); }";
|
|
QString editStyle = "QLineEdit { border: none; background-color: rgb(255 ,255, 255); border-radius: 5px; padding-left: 2px; }";
|
|
|
|
int height = 30;
|
|
|
|
//添加用户的ID的显示
|
|
idTag = new QLabel();
|
|
idTag->setFixedSize(50, height);
|
|
idTag->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
|
idTag->setText("ID");
|
|
idTag->setStyleSheet(labelStyle);
|
|
|
|
idLabel = new QLabel();
|
|
idLabel->setFixedHeight(height);
|
|
idLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
|
|
|
//添加新的用户的名字的显示
|
|
nameTag = new QLabel();
|
|
nameTag->setFixedSize(50, height);
|
|
nameTag->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
|
nameTag->setText("昵称");
|
|
nameTag->setStyleSheet(labelStyle);
|
|
|
|
nameLabel = new QLabel();
|
|
nameLabel->setFixedHeight(height);
|
|
nameLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
|
|
|
nameModifyBtn = new QPushButton();
|
|
nameModifyBtn->setFixedSize(70, 25);
|
|
nameModifyBtn->setIconSize(QSize(20, 20));
|
|
nameModifyBtn->setIcon(QIcon(":/resource/image/modify.png"));
|
|
nameModifyBtn->setStyleSheet(btnStyle);
|
|
|
|
nameEdit = new QLineEdit();
|
|
nameEdit->setFixedHeight(height);
|
|
nameEdit->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
|
nameEdit->setStyleSheet(btnStyle);
|
|
nameEdit->hide();
|
|
|
|
nameSubmitBtn = new QPushButton();
|
|
nameSubmitBtn->setFixedSize(70, 25);
|
|
nameSubmitBtn->setIconSize(QSize(20, 20));
|
|
nameSubmitBtn->setIcon(QIcon(":/resource/image/submit.png"));
|
|
nameSubmitBtn->setStyleSheet(btnStyle);
|
|
nameSubmitBtn->hide();
|
|
|
|
//添加个性签名
|
|
descTag = new QLabel();
|
|
descTag->setFixedSize(50, height);
|
|
descTag->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
|
descTag->setText("签名");
|
|
descTag->setStyleSheet(labelStyle);
|
|
|
|
descLabel = new QLabel();
|
|
descLabel->setFixedHeight(height);
|
|
descLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
|
|
|
descModifyBtn = new QPushButton();
|
|
descModifyBtn->setFixedSize(70, 25);
|
|
descModifyBtn->setIconSize(QSize(20, 20));
|
|
descModifyBtn->setIcon(QIcon(":/resource/image/modify.png"));
|
|
descModifyBtn->setStyleSheet(btnStyle);
|
|
|
|
descEdit = new QLineEdit();
|
|
descEdit->setFixedHeight(height);
|
|
descEdit->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
|
descEdit->setStyleSheet(btnStyle);
|
|
descEdit->hide();
|
|
|
|
descSubmitBtn = new QPushButton();
|
|
descSubmitBtn->setFixedSize(70, 25);
|
|
descSubmitBtn->setIconSize(QSize(20, 20));
|
|
descSubmitBtn->setIcon(QIcon(":/resource/image/submit.png"));
|
|
descSubmitBtn->setStyleSheet(btnStyle);
|
|
descSubmitBtn->hide();
|
|
|
|
// 7. 添加电话
|
|
phoneTag = new QLabel();
|
|
phoneTag->setFixedSize(50, height);
|
|
phoneTag->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
|
phoneTag->setText("电话");
|
|
phoneTag->setStyleSheet(labelStyle);
|
|
|
|
phoneLabel = new QLabel();
|
|
phoneLabel->setFixedHeight(height);
|
|
phoneLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
|
|
|
phoneModifyBtn = new QPushButton();
|
|
phoneModifyBtn->setFixedSize(70, 25);
|
|
phoneModifyBtn->setIconSize(QSize(20, 20));
|
|
phoneModifyBtn->setIcon(QIcon(":/resource/image/modify.png"));
|
|
phoneModifyBtn->setStyleSheet(btnStyle);
|
|
|
|
phoneEdit = new QLineEdit();
|
|
phoneEdit->setFixedHeight(height);
|
|
phoneEdit->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
|
phoneEdit->setStyleSheet(btnStyle);
|
|
phoneEdit->hide();
|
|
|
|
phoneSubmitBtn = new QPushButton();
|
|
phoneSubmitBtn->setFixedSize(70, 25);
|
|
phoneSubmitBtn->setIconSize(QSize(20, 20));
|
|
phoneSubmitBtn->setIcon(QIcon(":/resource/image/submit.png"));
|
|
phoneSubmitBtn->setStyleSheet(btnStyle);
|
|
phoneSubmitBtn->hide();
|
|
|
|
|
|
// 8. 添加验证码
|
|
verifyCodeTag = new QLabel();
|
|
verifyCodeTag->setFixedSize(50, height);
|
|
verifyCodeTag->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
|
verifyCodeTag->setText("验证码:");
|
|
verifyCodeTag->setStyleSheet(labelStyle);
|
|
verifyCodeTag->hide();
|
|
|
|
verifyCodeEdit = new QLineEdit();
|
|
verifyCodeEdit->setFixedHeight(height);
|
|
verifyCodeEdit->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
|
verifyCodeEdit->setStyleSheet(editStyle);
|
|
verifyCodeEdit->hide();
|
|
|
|
getVerifyCodeBtn = new QPushButton();
|
|
getVerifyCodeBtn->setText("获取验证码");
|
|
getVerifyCodeBtn->setFixedSize(70, height);
|
|
getVerifyCodeBtn->setStyleSheet(R"(QPushButton {
|
|
border: none;
|
|
background-color: transparent;
|
|
color: rgb(0, 0, 0); }
|
|
QPushButton:pressed { background-color: rgb(231, 231, 231); }
|
|
)");
|
|
getVerifyCodeBtn->hide();
|
|
|
|
|
|
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(nameModifyBtn, 1, 3);
|
|
|
|
layout->addWidget(descTag, 2, 1);
|
|
layout->addWidget(descLabel, 2, 2);
|
|
layout->addWidget(descModifyBtn, 2, 3);
|
|
|
|
layout->addWidget(phoneTag, 3, 1);
|
|
layout->addWidget(phoneLabel, 3, 2);
|
|
layout->addWidget(phoneModifyBtn, 3, 3);
|
|
|
|
/*layout->addWidget(verifyCodeTag, 4, 1);
|
|
layout->addWidget(verifyCodeEdit, 4, 2);
|
|
layout->addWidget(getVerifyCodeBtn, 4, 3);*/
|
|
|
|
#if TEST_UI
|
|
idLabel->setText("12345");
|
|
nameLabel->setText("xyz");
|
|
descLabel->setText("It didn't matter that i lived another day.");
|
|
phoneLabel->setText("12345678900");
|
|
#endif
|
|
|
|
//添加连接的槽函数
|
|
connect(nameModifyBtn, &QPushButton::clicked, this, [=]() {
|
|
//把当前的nameLabel和nameModifyBtn隐藏起来
|
|
nameLabel->hide();
|
|
nameModifyBtn->hide();
|
|
layout->removeWidget(nameLabel);
|
|
layout->removeWidget(nameModifyBtn);
|
|
//把nameEdit和nameSubmitBtn显示出来
|
|
nameEdit->show();
|
|
nameSubmitBtn->show();
|
|
layout->addWidget(nameEdit, 1, 2);
|
|
layout->addWidget(nameSubmitBtn, 1, 3);
|
|
//把输入框的内容进行设置
|
|
nameEdit->setText(nameLabel->text());
|
|
});
|
|
|
|
connect(descModifyBtn, &QPushButton::clicked, this, [=]() {
|
|
descLabel->hide();
|
|
descModifyBtn->hide();
|
|
layout->removeWidget(descLabel);
|
|
layout->removeWidget(descModifyBtn);
|
|
|
|
descEdit->show();
|
|
descSubmitBtn->show();
|
|
layout->addWidget(descEdit, 2, 2);
|
|
layout->addWidget(descSubmitBtn, 2, 3);
|
|
|
|
descEdit->setText(descLabel->text());
|
|
});
|
|
|
|
connect(phoneModifyBtn, &QPushButton::clicked, this, [=]() {
|
|
phoneLabel->hide();
|
|
phoneModifyBtn->hide();
|
|
layout->removeWidget(phoneLabel);
|
|
layout->removeWidget(phoneModifyBtn);
|
|
|
|
phoneEdit->show();
|
|
phoneSubmitBtn->show();
|
|
layout->addWidget(phoneEdit, 3, 2);
|
|
layout->addWidget(phoneSubmitBtn, 3, 3);
|
|
|
|
verifyCodeTag->show();
|
|
verifyCodeEdit->show();
|
|
getVerifyCodeBtn->show();
|
|
layout->addWidget(verifyCodeTag, 4, 1);
|
|
layout->addWidget(verifyCodeEdit, 4, 2);
|
|
layout->addWidget(getVerifyCodeBtn, 4, 3);
|
|
|
|
phoneEdit->setText(phoneLabel->text());
|
|
});
|
|
|
|
/*connect(nameSubmitBtn, &QPushButton::clicked, this, &SelfInfoWidget::clickNameSubmitBtn);
|
|
connect(descSubmitBtn, &QPushButton::clicked, this, &SelfInfoWidget::clickDescSubmitBtn);
|
|
connect(getVerifyCodeBtn, &QPushButton::clicked, this, &SelfInfoWidget::clickGetVerifyCodeBtn);
|
|
connect(phoneSubmitBtn, &QPushButton::clicked, this, &SelfInfoWidget::clickPhoneSubmitBtn);
|
|
connect(avatarBtn, &QPushButton::clicked, this, &SelfInfoWidget::clickAvatarBtn);*/
|
|
|
|
}
|