0

我将 qlineedit 子类化并编写了一个具有默认文本的自定义行编辑。默认文本是灰色的,直到用户开始向其中写入一些文本。行编辑也有时间掩码输入。它只接受 23:59:59 范围内的输入。

问题是当行编辑为空并且默认文本以灰色显示时,光标也是灰色的。我想知道如何在默认文本为灰色时将光标颜色更改为黑色。

我试图覆盖paintevent。我看了qlineedit的源码,看到QLineControl::DrawCursor负责在paintevent中绘制光标。但我不知道如何更改笔颜色,以便影响光标颜色。关于如何做到这一点的任何想法?tnx。

 void QCustomLineEdit::paintEvent(QPaintEvent * pe)
 {
    QLineEdit::paintEvent(pe);
    QPainter painter;
    painter.begin(this);
    painter.setPen(Qt::red);
    painter.end();
 }
4

1 回答 1

0

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

在此处输入图像描述

于 2015-04-21T10:53:53.840 回答