我正在尝试将 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)