#include "LoginWidget.h" #include "QFDConfig.h" #include #include #include #include #include LoginWidget::LoginWidget(QWidget *parent) : QWidget(parent) { initialize(); initLayout(); connectSignalsAndSlots(); loadAccount(); } 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(); } bool LoginWidget::rememberPassword() const { return m_remCheckBox->isChecked(); } void LoginWidget::saveAccountConfig() const { bool rem = m_remCheckBox->isChecked(); QFDConfig::setRememberPassword(rem); if (rem) { QFDConfig::setUsername(m_accLineEdit->text()); QFDConfig::setPassword(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); } void LoginWidget::loadAccount() { bool rem = QFDConfig::rememberPassword(); m_remCheckBox->setChecked(rem); if (rem) { m_accLineEdit->setText(QFDConfig::username()); m_pwLineEdit->setText(QFDConfig::password()); } }