Keep QLineEdit placeholder text visible when focused
This is useful when the widget is focused by default, and also gives another opportunity to the user to read the message before typing, removing the need for workarounds like clicking in another text entry to bring back the placeholder message. Change-Id: I4a2981a6656a87934b5c8ed4a8a2dc13b748c94d Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
This commit is contained in:
parent
1580f55847
commit
eeb31ad10a
@ -55,6 +55,7 @@ Window::Window()
|
||||
echoComboBox->addItem(tr("No Echo"));
|
||||
|
||||
echoLineEdit = new QLineEdit;
|
||||
echoLineEdit->setPlaceholderText("Placeholder Text");
|
||||
echoLineEdit->setFocus();
|
||||
//! [0]
|
||||
|
||||
@ -68,6 +69,7 @@ Window::Window()
|
||||
validatorComboBox->addItem(tr("Double validator"));
|
||||
|
||||
validatorLineEdit = new QLineEdit;
|
||||
validatorLineEdit->setPlaceholderText("Placeholder Text");
|
||||
//! [1]
|
||||
|
||||
//! [2]
|
||||
@ -80,6 +82,7 @@ Window::Window()
|
||||
alignmentComboBox->addItem(tr("Right"));
|
||||
|
||||
alignmentLineEdit = new QLineEdit;
|
||||
alignmentLineEdit->setPlaceholderText("Placeholder Text");
|
||||
//! [2]
|
||||
|
||||
//! [3]
|
||||
@ -93,6 +96,7 @@ Window::Window()
|
||||
inputMaskComboBox->addItem(tr("License key"));
|
||||
|
||||
inputMaskLineEdit = new QLineEdit;
|
||||
inputMaskLineEdit->setPlaceholderText("Placeholder Text");
|
||||
//! [3]
|
||||
|
||||
//! [4]
|
||||
@ -104,6 +108,7 @@ Window::Window()
|
||||
accessComboBox->addItem(tr("True"));
|
||||
|
||||
accessLineEdit = new QLineEdit;
|
||||
accessLineEdit->setPlaceholderText("Placeholder Text");
|
||||
//! [4]
|
||||
|
||||
//! [5]
|
||||
|
@ -1801,7 +1801,7 @@ void QLineEdit::paintEvent(QPaintEvent *)
|
||||
int minRB = qMax(0, -fm.minRightBearing());
|
||||
|
||||
if (d->control->text().isEmpty()) {
|
||||
if (!hasFocus() && !d->placeholderText.isEmpty()) {
|
||||
if (!d->placeholderText.isEmpty()) {
|
||||
QColor col = pal.text().color();
|
||||
col.setAlpha(128);
|
||||
QPen oldpen = p.pen();
|
||||
@ -1810,7 +1810,6 @@ void QLineEdit::paintEvent(QPaintEvent *)
|
||||
QString elidedText = fm.elidedText(d->placeholderText, Qt::ElideRight, lineRect.width());
|
||||
p.drawText(lineRect, va, elidedText);
|
||||
p.setPen(oldpen);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user