#include "LoginWidget.h" #include #include #include #include #include LoginWidget::LoginWidget(QWidget *parent) : QWidget(parent) { initialize(); initLayout(); connectSignalsAndSlots(); } void LoginWidget::setTitle(const QString title) { m_titleLabel->setText(title); } const QString LoginWidget::account() const { return m_accLineEdit->text(); } const QString LoginWidget::password() const { return m_pwLineEdit->text(); } void LoginWidget::initialize() { m_vBoxLayout = new QVBoxLayout(this); m_titleLabel = new QLabel(this); m_titleLabel->setStyleSheet("color:#ffffff;"); QFont ft; ft.setPointSize(15); ft.setBold(true); m_titleLabel->setFont(ft); m_accLineEdit = new LineEdit(this); m_accLineEdit->setIsClearButtonEnabled(true); m_accLineEdit->setPlaceholderText("请输入账号"); m_accLineEdit->setFixedWidth(250); m_pwLineEdit = new PasswordLineEdit(this); m_pwLineEdit->setPlaceholderText("请输入密码"); m_pwLineEdit->setFixedWidth(250); m_remLayout = new QHBoxLayout(); m_remCheckBox = new CheckBox("记住密码", this); const QString &s = m_remCheckBox->styleSheet() + "CheckBox {color:white}"; m_remCheckBox->setStyleSheet(s); m_buttonLayout = new QHBoxLayout(); m_loginButton = new PushButton("登录", this); m_cancelButton = new PushButton("取消", this); } void LoginWidget::initLayout() { setLayout(m_vBoxLayout); m_vBoxLayout->setAlignment(Qt::AlignCenter); m_vBoxLayout->addWidget(m_titleLabel); m_vBoxLayout->addSpacing(20); m_vBoxLayout->addWidget(m_accLineEdit); m_vBoxLayout->addSpacing(20); m_vBoxLayout->addWidget(m_pwLineEdit); m_vBoxLayout->addSpacing(20); m_vBoxLayout->addLayout(m_remLayout); m_remLayout->addWidget(m_remCheckBox); m_remLayout->addSpacing(30); m_vBoxLayout->addSpacing(40); m_vBoxLayout->addLayout(m_buttonLayout); m_buttonLayout->addWidget(m_loginButton); m_buttonLayout->addSpacing(20); m_buttonLayout->addWidget(m_cancelButton); } void LoginWidget::connectSignalsAndSlots() { connect(m_loginButton, &PushButton::clicked, this, &LoginWidget::signalLogin); connect(m_cancelButton, &PushButton::clicked, this, &LoginWidget::signalCancel); }