首页 > 解决方案 > 改变 Qt qtextedit 已经拥有的单词的颜色

问题描述

我想在用户将它们写入 qtextedit 后更改某些单词的颜色。我怎样才能做到这一点?

例如,用户写

在此处输入图像描述

我想把它改成

在此处输入图像描述

标签: c++qtqt5

解决方案


你可以使用QLineEdit::editingFinished()信号来做到这一点。当按下 Return 或 Enter 键或行编辑失去焦点时,会发出此信号。

例子。

在您的 UI 构造函数中:

QObject::connect(MainWindow::yourQLineEdit, &QLineEdit::editingFinished, 
                 this, &MainWindow::SetTextColorInQLineEdit);

在课堂上:

void MainWindow::SetTextColorInQLineEdit()
{
     MainWindow::yourQLineEdit->QWidget::setStyleSheet("your style for color");

     return;
}

艰难的方式- 你需要覆盖QKeyEvent

并检查这个枚举 -QEvent::KeyPressQEvent::KeyRelease

在这里查看:

QEvent https://doc.qt.io/qt-5/qevent.html

QKeyEvent https://doc.qt.io/qt-5/qkeyevent.html#text


推荐阅读