小编Nic*_*ern的帖子

Qt 5.8 QTextEdit 文本光标颜色不会改变

我正在尝试将 QTextEdit 上的文本光标设为红色 (rgb(255,0,0))。尽管我尽了最大的努力,它还是继续闪烁白光。

根据我的发现,样式表的“颜色”属性应该会改变光标的颜色。不知道出了什么问题。

我的代码:

    textEntry = new QTextEdit();
    textEntry->setFont(QFont("Electrolize", 9, 1));
    textEntry->setMinimumHeight(25);
    textEntry->setMaximumHeight(25);
    textEntry->setLineWrapMode(QTextEdit::NoWrap);
    textEntry->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    textEntry->setStyleSheet("color: rgb(255, 0, 0);"
                             "border: 1px solid rgb(255, 0, 0);");
Run Code Online (Sandbox Code Playgroud)

编辑:我鼓励完整阅读 Scheff 的回答。这很棒。不过,我注意到用他的解决方案创建的光标没有闪烁,所以我想与我(没有经验的)添加共享一个从 Scheff 代码派生的闪烁版本。

文本编辑器

#ifndef TEXTEDIT_H
#define TEXTEDIT_H

#include <QTextEdit>
#include <QTimer>

class TextEdit : public TextEdit
{
    Q_OBJECT
public:
    explicit TextEdit(QWidget *parent = nullptr);

private:
    QTimer *timer;
    QPainter *pPainter;
    bool bCursorVisible;

protected:
    virtual void paintEvent(QPaintEvent *pEvent) override;

signals:
    sendUpdate();

public slots:
    void timerSlot();
};

#endif // TEXTEDIT_H
Run Code Online (Sandbox Code Playgroud)

文本编辑器

#include "textedit.h" …
Run Code Online (Sandbox Code Playgroud)

qt colors caret qtextedit

1
推荐指数
1
解决办法
1759
查看次数

标签 统计

caret ×1

colors ×1

qt ×1

qtextedit ×1