改变 Qt qtextedit 已经拥有的单词的颜色
Posted
技术标签:
【中文标题】改变 Qt qtextedit 已经拥有的单词的颜色【英文标题】:changing The color of the words that Qt qtextedit already has 【发布时间】:2020-05-25 17:02:23 【问题描述】:我想在用户将某些单词写入 qtextedit 后更改它们的颜色。 我该怎么做?
例如,用户写
我想改成
【问题讨论】:
setStyleSheet() 方法应该这样做。 @ΦXocę웃Пepeúpaツ 我不明白为什么你需要知道条件?当用户按键时,我想改变一些单词的颜色。 @nader,很简单,因为 qt 有一些冗长的验证,可以在 2 行代码中解决问题... 【参考方案1】:您可以使用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::KeyPress
和 QEvent::KeyRelease
在这里查看:
QEvent
https://doc.qt.io/qt-5/qevent.html
QKeyEvent
https://doc.qt.io/qt-5/qkeyevent.html#text
【讨论】:
它不是 QLineEdit。它是一个 QTextEdit,我不想更改所有文本,但我想更改某些单词的颜色。 @nader 尝试为 QTextEdit 重写此代码 - ***.com/a/14424003以上是关于改变 Qt qtextedit 已经拥有的单词的颜色的主要内容,如果未能解决你的问题,请参考以下文章