不幸的是,这似乎是所有硬编码在void QLineEdit::paintEvent(QPaintEvent *)如下:
if (d->shouldShowPlaceholderText()) {
if (!d->placeholderText.isEmpty()) {
QColor col = pal.text().color();
col.setAlpha(128);
QPen oldpen = p.pen();
p.setPen(col);
QRect ph = lineRect.adjusted(minLB, 0, 0, 0);
QString elidedText = fm.elidedText(d->placeholderText, Qt::ElideRight, ph.width());
p.drawText(ph, va, elidedText);
p.setPen(oldpen);
}
}
Run Code Online (Sandbox Code Playgroud)
如果您愿意,可以在子类中自行重新实现.
当然,你也可以用空间和字体大小"欺骗",但这需要更多的工作,最终也会更糟糕,更不用说长期的可靠性了.
您也可以为Qt项目做出贡献,使这个课程更加灵活,但他们可以拒绝它,理由是不够常见.这取决于维护者.
| 归档时间: |
|
| 查看次数: |
1215 次 |
| 最近记录: |