各位大佬,請問QLineEdit右側添加圖示,點擊查看密碼,點擊隱藏密碼時,為啥如下代碼顯示的右側圖示會向下拉長呢?有什么辦法可以讓它顯示正常或好看一些嗎?
具體代碼如下:
class pwdLineEdit : public QLineEdit
{
Q_OBJECT
public:
explicit pwdLineEdit(QWidget *parent = nullptr);
~pwdLineEdit();
signals:
public slots:
};
//pwdLineEdit
pwdLineEdit::pwdLineEdit(QWidget *parent)
:QLineEdit(parent)
{
setStyleSheet("QLineEdit{background:transparent;border-image:url(:/res/pwd/lineEditBkg.png);border-style:solid;color:#003DA6;padding-left: +8px;border-color:#232423;font:11px ""SimHei"";}"
"QLineEdit:hover{border: 1px solid #014099;}"
"QLineEdit:focus{border: 1px solid #014099;}"
"QLineEdit:hover{border: 1px solid #014099;}"
"QLineEdit QPushButton {width: 16px;height: 16px;qproperty-flat: true;margin-right: 4px;border: none;border-width: 0;border-image: url(:/res/pwd/password_hide.png) 0 0 0 0 stretch stretch;background: transparent;}"
"QLineEdit QPushButton::checked {border-image: url(:/res/pwd/password_show.png) 0 0 0 0 stretch stretch;}");
setEchoMode(QLineEdit::Password);
QPushButton* button = new QPushButton();
button->setCursor(Qt::PointingHandCursor);
button->setCheckable(true);
connect(button, &QPushButton::toggled, [this](bool checked) {
if (checked)
{
setEchoMode(QLineEdit::Normal);
}
else
{
setEchoMode(QLineEdit::Password);
}
});
QHBoxLayout* layout = new QHBoxLayout();
layout->addStretch();
layout->addWidget(button);
layout->setContentsMargins(0, 0, 0, 0);
setLayout(layout);
}
pwdLineEdit::~pwdLineEdit()
{
}
具體效果圖如下:

uj5u.com熱心網友回復:
不要用border-image 那個跟著控制元件大小走的。要么就把button大小固定成圖片的比例。uj5u.com熱心網友回復:
大佬,剛剛試過了,把button固定成為:/res/pwd/password_show.png或:/res/pwd/password_hide.png,好像沒有多大變化,和截圖中的效果一樣。
那個border-image背景圖這個暫時不能更換了,因為專案需求限定了這個背景圖片。。。
uj5u.com熱心網友回復:

我的意思是指定button的fixdsize
或者用seticon和seticonsize
沒讓你固定用一個圖片或者換圖片
border-image會把圖繪制的跟控制元件一樣大
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/284474.html
標籤:Qt
下一篇:初學指標問題
