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