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

菜鸟阿丹 C++开发工程师  2017-11-13 02:41:31
在QPlainTextEdit,想要给定任意一个行号,将这一行的显示设置为高亮,不知道哪位大牛可以可以提供一个方法?
...全文
823 2 点赞 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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);//设置高亮
  • 打赏
  • 举报
回复
相关推荐
发帖
工具平台和程序库
加入

2.4w+

社区成员

C/C++ 工具平台和程序库
申请成为版主
帖子事件
创建了帖子
2017-11-13 02:41
社区公告
暂无公告