【问题标题】:qt4 - change the color of text cursor in a qlineedit?qt4 - 在 qlineedit 中更改文本光标的颜色?
【发布时间】:2015-04-19 08:10:18
【问题描述】:

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

【问题讨论】:

    标签: colors cursor qt4 paintevent


    【解决方案1】:

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

    【讨论】:

    • 是的,我知道该属性。我没有使用该属性并重写我自己的 qlineEdit,因为我希望每次光标回到 0 位置时,默认文本再次出现。但是使用这个属性并没有给我我想要的功能。
    猜你喜欢
    • 2015-01-29
    • 1970-01-01
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多