当前位置: 首页 > news >正文

广东律师事务所东莞网站建设网站背景设计

广东律师事务所东莞网站建设,网站背景设计,wordpress 标题插件,济南免费建站Qt QPlainTextEdit高亮显示当前行 文章目录 Qt QPlainTextEdit高亮显示当前行摘要错误的代码正确的代码QTextEdit::ExtraSelection 关键字#xff1a; Qt、 QPlainTextEdit、 QTextBlock、 ExtraSelection、 GPT 摘要 今天要在说一下GPT#xff0c;当下如果你还不会用G… Qt QPlainTextEdit高亮显示当前行 文章目录 Qt QPlainTextEdit高亮显示当前行摘要错误的代码正确的代码QTextEdit::ExtraSelection 关键字 Qt、 QPlainTextEdit、 QTextBlock、 ExtraSelection、 GPT 摘要 今天要在说一下GPT当下如果你还不会用GPT那得推荐你学习一下这个东西可比百度好的的。如果没有GPT那我今天分享的内容还需要在手打一次了。因为我公司没有网代码也没法直接复制粘贴出来。 回到正题今天我们需要 在QPlainTextEdit中实现高亮当前行显示。 错误的代码 在这段代码中我们定义了一个HighlightCurrentLinePlainTextEdit类继承自QPlainTextEdit。我们重写了paintEvent来绘制背景色同时通过cursorPositionChanged信号来触发当前行的高亮。每当光标移动时highlightCurrentLine槽会被调用它会创建一个ExtraSelection来指定当前光标所在行的背景色并将它设置成QPlainTextEdit的extraSelections。 #include QPlainTextEdit #include QPainter #include QTextBlockclass HighlightCurrentLinePlainTextEdit : public QPlainTextEdit {Q_OBJECTpublic:HighlightCurrentLinePlainTextEdit(QWidget *parent nullptr) : QPlainTextEdit(parent) {connect(this, QPlainTextEdit::cursorPositionChanged,this, HighlightCurrentLinePlainTextEdit::highlightCurrentLine);highlightCurrentLine();}protected:void paintEvent(QPaintEvent *e) override {QPlainTextEdit::paintEvent(e);QPainter painter(viewport());QRect rect cursorRect();QRect lineRect QRect(0, rect.y(), viewport()-width(), rect.height());QColor color QColor(Qt::yellow).lighter(160);painter.fillRect(lineRect, color);}private slots:void highlightCurrentLine() {QListQTextEdit::ExtraSelection extraSelections;if (!isReadOnly()) {QTextEdit::ExtraSelection selection;QColor lineColor QColor(Qt::yellow).lighter(160);selection.format.setBackground(lineColor);selection.format.setProperty(QTextFormat::FullWidthSelection, true);selection.cursor textCursor();selection.cursor.clearSelection();extraSelections.append(selection);}setExtraSelections(extraSelections);} };#include main.moc 如果按照上面的的写法你会发现你的文字就不见了所以还需要改良一下才可以用。 正确的代码 在这段代码中我们移除了paintEvent方法的覆写因为这个方法会影响文本的正常显示。我们通过ExtraSelections机制来高亮当前行它不会干扰文本的显示。 #include QApplication #include QPlainTextEditclass HighlightCurrentLinePlainTextEdit : public QPlainTextEdit { Q_OBJECTpublic:explicit HighlightCurrentLinePlainTextEdit(QWidget *parent nullptr) {connect(this, QPlainTextEdit::cursorPositionChanged, this, HighlightCurrentLinePlainTextEdit::highlightCurrentLine);// 初始化高亮highlightCurrentLine();}private slots:void highlightCurrentLine() {QListQTextEdit::ExtraSelection extraSelections;if (!isReadOnly()) {QTextEdit::ExtraSelection selection;QColor lineColor QColor(Qt::yellow).lighter(160);selection.format.setBackground(lineColor);selection.format.setProperty(QTextFormat::FullWidthSelection, true);selection.cursor textCursor();selection.cursor.clearSelection();extraSelections.append(selection);}setExtraSelections(extraSelections);} };int main(int argc, char *argv[]) {QApplication a(argc, argv);HighlightCurrentLinePlainTextEdit editor;editor.show();return QApplication::exec(); }#include main.moc QTextEdit::ExtraSelection QTextEdit::ExtraSelection 是一个在 QTextEdit 控件中用来表示额外的文本选择的结构。在 Qt 框架中QTextEdit 是一个富文本编辑器控件它可以用来显示和编辑富文本文档。默认情况下用户可以在文本编辑器中选择文本但有时候开发者可能希望高亮显示文本的其他部分而不影响用户的当前选择。ExtraSelection 提供了这种功能。 ExtraSelection 结构有两个主要的成员 QTextCursor cursor这个 QTextCursor 用来指定要高亮显示的文本范围。你可以设置它选择一个词、一行或者文档中的任何段落。 QTextCharFormat format这个 QTextCharFormat 用来指定高亮显示的样式比如背景色、文本颜色、下划线等。 你可以创建一个 ExtraSelection 的列表并通过调用 QTextEdit 的 setExtraSelections() 方法来设置这个列表QTextEdit 将会绘制出这些额外的选择区域。这通常用于诸如代码高亮、拼写错误提示等场景。 以下是一个 QTextEdit::ExtraSelection 用法的简单例子 QTextEdit *editor new QTextEdit;// 创建一个额外的选择 QTextEdit::ExtraSelection selection;// 设置选择范围 selection.cursor QTextCursor(editor-document()-findBlockByNumber(10)); // 选择第11行假设行号从0开始 selection.cursor.select(QTextCursor::LineUnderCursor);// 设置选择的格式比如蓝色背景 selection.format.setBackground(Qt::blue); selection.format.setForeground(Qt::white);// 应用额外的选择 editor-setExtraSelections(QListQTextEdit::ExtraSelection() selection);在这个例子中QTextEdit 的第11行将被一个蓝色背景和白色前景的样式高亮显示。这种方式不会干扰用户的正常选择而是作为一种额外的视觉提示。
http://www.pierceye.com/news/346528/

相关文章:

  • 简单的个人网站模板网站建设费记什么科目
  • 中国建设银行宁波分行网站一般网站空间要多大
  • 做简单视频网站自己看廊坊专门做网站
  • 做贸易网站科技型中小企业服务平台登录
  • 网站怎么接广告赚钱net创建网站之后怎么做
  • 做网站如何让盈利wordpress链接样式表
  • 网站建设与管理计划谷歌浏览器官网下载手机版
  • 做请帖的网站上海阳性增多
  • 有回定ip怎么做网站青岛建设集团招聘信息网站
  • 淘宝内部卷网站怎么做智慧团建网站登录忘记密码
  • 网站建设前十名建站系统cms
  • 第三方网站开发的商家厦门广告公司网站建设
  • 网站建设基础条件临猗网站制作
  • 建设博客网站步骤常州网站建设百科
  • 门户网站 管理系统wordpress 微信图标
  • 广元网站建设广元莱芜论坛二手车
  • 山东省建设工程质量监督网站广州软件合作中心
  • 郑州网站建设怎么样通州建设局网站
  • 免费网站建设福州怎么修改网站主页
  • 深圳企业建站设计公司wordpress不显示样式
  • 外贸网站商城广东省建设协会网站
  • 杭州制作企业公司网站wordpress数据库添加用户
  • 主域名进入网站广告标识标牌制作厂家
  • 网站建设基础流程摘要专题网站建设策划
  • 滁州网站建设电话网站建设与网站优化
  • 慈溪做网站公司哪家好淘宝商城的网站建设
  • 安徽建设厅网站怎么打不开太原网络搭建
  • idea 网站开发最好的免费推广平台
  • 专业排名优化网站怎么建网站教程视频app
  • 全国八大员报名官方网站支付宝小程序开发工具