我已经将qlineedit子类化,并编写了一个自定义行编辑,其中包含默认文本。默认文本显示为灰色,直到用户开始将一些文本写入其中。行编辑也有时间掩码输入。它只接受23:59:59范围内的输入。
问题是当行编辑为空且默认文本以灰色显示时,光标也是灰色。我想知道如何在默认文字为灰色时将光标颜色更改为黑色。
我试图覆盖痛苦的事。我看到了qlineedit的源代码,看到QLineControl :: DrawCursor负责在paintevent中绘制光标。但我不知道如何更改笔颜色,以便它可以影响光标颜色。有关如何做到这一点的任何想法? TNX。
void QCustomLineEdit::paintEvent(QPaintEvent * pe)
{
QLineEdit::paintEvent(pe);
QPainter painter;
painter.begin(this);
painter.setPen(Qt::red);
painter.end();
}
答案 0 :(得分:0)
QLineEdit
有一个名为placeholderText
的属性,您可以使用该属性设置当编辑框中没有文本时显示的灰色文本。光标颜色不会更改,当您开始键入时,占位符文本会消失。