feat: Add button can see the password in login dialog.

This commit is contained in:
sunwen
2024-05-27 11:27:02 +08:00
parent 8aff31858b
commit 0dcaa994c8
4 changed files with 37 additions and 2 deletions

BIN
src/icons/eye.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -332,10 +332,21 @@ QDialog#loginForm QLineEdit {
font-size: 26px;
}
QDialog#loginForm QWidget#LoginEditArea {
background: transparent;
min-height: 110px;
max-height: 110px;
}
QDialog#loginForm QLineEdit:enabled {
background-color: #515151
}
QDialog#loginForm QToolButton#ShowPasswordButton{
qproperty-icon:url(":/icons/eye.png");
qproperty-iconSize:30px 30px;
}
QDialog#loginForm QToolButton#btnlogin {
min-height: 100px;
max-height: 100px;

View File

@@ -34,6 +34,7 @@ LoginDialog::LoginDialog(QWidget* aParent)
, mAccountEdit(new ULineEdit(mDialogFrame))
, mPasswordEdit(new ULineEdit(mDialogFrame))
, mLoginButton(nullptr)
, mShowPasswordButton(new QToolButton(this))
, mErrorMessage(new QLabel(this))
, mIsRunning(false)
, mHideClickCount(0)
@@ -122,15 +123,37 @@ void LoginDialog::initializeDialogFrame()
void LoginDialog::initializeEdit()
{
QWidget* accountEditArea = new QWidget();
accountEditArea->setObjectName("LoginEditArea");
QHBoxLayout* accountEditAreaLayout = new QHBoxLayout(accountEditArea);
mAccountEdit->setObjectName("combobox_UserName");
mAccountEdit->setPlaceholderText(tr("Username"));
mAccountEdit->setFocusPolicy(Qt::ClickFocus);
mDialogContentsLayout->addWidget(mAccountEdit);
accountEditAreaLayout->addWidget(mAccountEdit);
accountEditAreaLayout->addItem(new QSpacerItem(49,20,QSizePolicy::Fixed));
mDialogContentsLayout->addWidget(accountEditArea);
QWidget* passwordEditArea = new QWidget(this);
passwordEditArea->setObjectName("LoginEditArea");
QHBoxLayout* passwordEditAreaLayout = new QHBoxLayout(passwordEditArea);
mPasswordEdit->setObjectName("edt_Password");
mPasswordEdit->setEchoMode(QLineEdit::Password);
mPasswordEdit->setPlaceholderText(tr("Password"));
mPasswordEdit->setFocusPolicy(Qt::ClickFocus);
mDialogContentsLayout->addWidget(mPasswordEdit);
passwordEditAreaLayout->addWidget(mPasswordEdit);
passwordEditAreaLayout->addWidget(mShowPasswordButton);
mShowPasswordButton->setObjectName("ShowPasswordButton");
mDialogContentsLayout->addWidget(passwordEditArea);
connect(mShowPasswordButton, &QToolButton::pressed, [this]()
{
mPasswordEdit->setEchoMode(QLineEdit::Normal);
});
connect(mShowPasswordButton, &QToolButton::released, [this]()
{
mPasswordEdit->setEchoMode(QLineEdit::Password);
});
}
void LoginDialog::initializeLoginButton()

View File

@@ -54,6 +54,7 @@ private:
ULineEdit* mAccountEdit;
ULineEdit* mPasswordEdit;
QToolButton* mLoginButton;
QToolButton* mShowPasswordButton;
QLabel* mErrorMessage;
bool mIsRunning;
int mHideClickCount;