qt4 - 改变qlineedit中文本光标的颜色?

时间:2015-04-19 08:10:18

标签: colors cursor qt4 paintevent

我已经将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();
 }

1 个答案:

答案 0 :(得分:0)

QLineEdit有一个名为placeholderText的属性,您可以使用该属性设置当编辑框中没有文本时显示的灰色文本。光标颜色不会更改,当您开始键入时,占位符文本会消失。

enter image description here