QT将QPlainTextEdit的某一行设置为高亮

菜鸟阿丹 2017-11-13 02:41:31
在QPlainTextEdit,想要给定任意一个行号,将这一行的显示设置为高亮,不知道哪位大牛可以可以提供一个方法?
...全文
2375 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
admint_est 2021-05-03
  • 打赏
  • 举报
回复
def highlightSpecificLine(self, lineno): """ 通过找到鼠标区域高亮指定行 :return: """ extraSelections = [] if not self.isReadOnly(): # 创建选中块 selection = QTextEdit.ExtraSelection() # 设置块的高亮颜色,格式 lineColor = QColor(Qt.red).lighter(160) selection.format.setBackground(lineColor) selection.format.setProperty(QTextFormat.FullWidthSelection, True) # 移动光标到textedit中的指定行 position = self.document().findBlockByLineNumber(lineno).position() selection.cursor = self.textCursor() selection.cursor.setPosition(position) # 将高亮底块添加至textedit中 extraSelections.append(selection) self.setExtraSelections(extraSelections)
sunnyuer 2018-11-24
  • 打赏
  • 举报
回复
QList<QTextEdit::ExtraSelection> extraSelections;//提供一种方式显示选择的文本
extraSelections = ui->plainTextEdit->extraSelections();//获取之前高亮的设置
QTextEdit::ExtraSelection selection;
selection.format.setBackground(color);
selection.format.setProperty(QTextFormat::FullWidthSelection, true);
selection.cursor = ui->plainTextEdit->textCursor();
selection.cursor.movePosition(QTextCursor::Up);//光标移动到某一行。此处移动到上一行,上一行将高亮。
extraSelections.append(selection);
ui->plainTextEdit->setExtraSelections(extraSelections);//设置高亮

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧