【问题标题】:changing The color of the words that Qt qtextedit already has改变 Qt qtextedit 已经拥有的单词的颜色
【发布时间】:2020-05-25 17:02:23
【问题描述】:

我想在用户将某些单词写入 qtextedit 后更改它们的颜色。 我该怎么做?

例如,用户写

我想改成

【问题讨论】:

  • setStyleSheet() 方法应该这样做。
  • @ΦXocę웃Пepeúpaツ 我不明白为什么你需要知道条件?当用户按键时,我想改变一些单词的颜色。
  • @nader,很简单,因为 qt 有一些冗长的验证,可以在 2 行代码中解决问题...

标签: c++ qt qt5


【解决方案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::KeyPressQEvent::KeyRelease

在这里查看:

QEventhttps://doc.qt.io/qt-5/qevent.html

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

【讨论】:

  • 它不是 QLineEdit。它是一个 QTextEdit,我不想更改所有文本,但我想更改某些单词的颜色。
  • @nader 尝试为 QTextEdit 重写此代码 - stackoverflow.com/a/14424003
猜你喜欢
  • 2019-09-16
  • 2011-02-20
  • 2012-03-22
  • 2019-11-23
  • 1970-01-01
  • 1970-01-01
  • 2018-02-14
  • 2016-06-03
  • 1970-01-01
相关资源
最近更新 更多