96SEO 2026-02-20 01:25 0
QPlainTextEdit高亮显示当前行摘要错误的代码正确的代码QTextEdit::ExtraSelection

今天要在说一下GPT当下如果你还不会用GPT那得推荐你学习一下这个东西可比百度好的的。
如果没有GPT那我今天分享的内容还需要在手打一次了。
因为我公司没有网代码也没法直接复制粘贴出来。
在这段代码中我们定义了一个HighlightCurrentLinePlainTextEdit类继承自QPlainTextEdit。
我们重写了paintEvent来绘制背景色同时通过cursorPositionChanged信号来触发当前行的高亮。
每当光标移动时highlightCurrentLine槽会被调用它会创建一个ExtraSelection来指定当前光标所在行的背景色并将它设置成QPlainTextEdit的extraSelections。
HighlightCurrentLinePlainTextEdit
{Q_OBJECTpublic:HighlightCurrentLinePlainTextEdit(QWidget
QPlainTextEdit::cursorPositionChanged,this,
HighlightCurrentLinePlainTextEdit::highlightCurrentLine);highlightCurrentLine();}protected:void
{QPlainTextEdit::paintEvent(e);QPainter
QColor(Qt::yellow).lighter(160);painter.fillRect(lineRect,
{QListQTextEdit::ExtraSelection
QColor(Qt::yellow).lighter(160);selection.format.setBackground(lineColor);selection.format.setProperty(QTextFormat::FullWidthSelection,
textCursor();selection.cursor.clearSelection();extraSelections.append(selection);}setExtraSelections(extraSelections);}
如果按照上面的的写法你会发现你的文字就不见了所以还需要改良一下才可以用。
在这段代码中我们移除了paintEvent方法的覆写因为这个方法会影响文本的正常显示。
我们通过ExtraSelections机制来高亮当前行它不会干扰文本的显示。
HighlightCurrentLinePlainTextEdit
HighlightCurrentLinePlainTextEdit(QWidget
QPlainTextEdit::cursorPositionChanged,
HighlightCurrentLinePlainTextEdit::highlightCurrentLine);//
初始化高亮highlightCurrentLine();}private
{QListQTextEdit::ExtraSelection
QColor(Qt::yellow).lighter(160);selection.format.setBackground(lineColor);selection.format.setProperty(QTextFormat::FullWidthSelection,
textCursor();selection.cursor.clearSelection();extraSelections.append(selection);}setExtraSelections(extraSelections);}
argv);HighlightCurrentLinePlainTextEdit
是一个富文本编辑器控件它可以用来显示和编辑富文本文档。
默认情况下用户可以在文本编辑器中选择文本但有时候开发者可能希望高亮显示文本的其他部分而不影响用户的当前选择。
ExtraSelection
用来指定要高亮显示的文本范围。
你可以设置它选择一个词、一行或者文档中的任何段落。
将会绘制出这些额外的选择区域。
这通常用于诸如代码高亮、拼写错误提示等场景。
QTextCursor(editor-document()-findBlockByNumber(10));
selection.cursor.select(QTextCursor::LineUnderCursor);//
selection.format.setBackground(Qt::blue);
selection.format.setForeground(Qt::white);//
editor-setExtraSelections(QListQTextEdit::ExtraSelection()
的第11行将被一个蓝色背景和白色前景的样式高亮显示。
这种方式不会干扰用户的正常选择而是作为一种额外的视觉提示。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback