20130222 鬼猫猫 整理 http://www.cnblogs.com/muyr/

解决方法的原始地址 http://www.qtcn.org/bbs/read.php?tid=20335

背景

在实现纯文本的QTextEdit的查找功能的时候,查找对话框以exec方式运行,对QTextEdit的字符串进行查找,对查找的字符串进行高亮显示,可是这时高亮显示的字符串是灰白色的.

QTextEdit窗口为焦点窗口时,高亮显示的颜色为蓝色背景的,当QTextEdit不是焦点窗口时,高亮显示是灰白色背景的. 希望实现的是当QTextEdit 不是焦点窗口的时候,高亮显示的颜色仍然是蓝色背景的

分析

QPalette的ColorGroup是管这个的,正常的是Active状态,失去焦点是InActive,把InActive的:Highlight和HighlightedText的Color设置成Active时的对应Color就行了。

解决

//获得该QTextEdit的QPalette的copy
QPalette p = this->palette();
//分别得到有焦点时高亮的背景色和文本颜色
QColor color1 = p.color(QPalette::Active, QPalette::Highlight);
QColor color2 = p.color(QPalette::Active, QPalette::HighlightedText); //设置失去焦点时高亮的背景色和文本颜色
p.setColor(QPalette::Inactive, QPalette::Highlight, color1);
p.setColor(QPalette::Inactive, QPalette::HighlightedText, color2); //把该copy重新设置为QTextEdit的QPalette
this->setPalette(p);

Powered by Sublog

QTextEdit字符串的高亮显示问题的更多相关文章

  1. TTTAttributedLabel 如何将多个字符串高亮显示

    TTTAttributedLabel进行多个字符串的高亮显示. 需要对每个字符串进行匹配,从而得到所有需要高亮的NSRange,然后利用NSMutableAttributedString对每个NSRa ...

  2. C#中正则表达式进行忽略大小写的字符串替换

    在C#里要进行忽略大小写的字符串替换,用string的Replace是很难做到的,即使花了天大的力气做到了,效率仍然是很低的,正确的方法应该是使用正则表达式. 要使用正则表达式,首先需要引用命名空间: ...

  3. php单引号和双引号的区别与用法

    php里的单引号把内容当成纯文本,不会经过服务器翻译.而双引号则与此相反.里面的内容会经过服务器处理(process). 举个简单的例子:   $foo="data"; echo ...

  4. linux命令综合

    查找文件中指定字符串并且高亮显示: find .|xargs grep --color=auto "hello" dos下查找: netstat -ano|findstr &quo ...

  5. 文本处理三剑客之grep

    grep grep(支持基本正则表达式),egrep(支持扩展的正则表达式),fgrep(快速的grep,不支持正则表达式) grep是一个最初用于Unix操作系统的命令行工具.在给出文件列表或标准输 ...

  6. linux常用的shell命令

    1.shell介绍 shell(外壳)是linux系统的最外层,简单的说,它就是用户和操作系统之间的一个命令解释器. 2.shell命名的使用 ls :查看当前目录的信息,list .        ...

  7. vim gvim技巧大全(9)(转载)

    vim gvim技巧大全(9) 2 用命令}移动到这个段落的底部,标记为b3 输入命令:'a,'b move来移动文本.老版本的Vi编辑器不能很好的来处理多文件.但是Vim在处理多文件上却显得优秀得多 ...

  8. php截取字符串中的关键字,并高亮显示

    <?php $str = "hahaceshi测试一下关键字高亮显示,以及长字符串截取的问题!"; $key = "关键字"; $r = sub_key_ ...

  9. js比较两个String字符串找出不同,并将不同处高亮显示

    根据java代码改写成js,下边js文件代码: function StringBuffer() { this.__strings__ = []; }; StringBuffer.prototype.a ...

随机推荐

  1. Python稳基修炼之异常处理

    错误与异常 1.区分错误与异常 两种错误(都必须改正): 语法错误(代码不规范,格式不对或缺少符号).逻辑错误(逻辑不通) 异常: 程序运行时发生错误的信号 2.异常处理与注意事项 异常处理: 程序员 ...

  2. Python将文件夹下的文件名写入excel方便统计

    如题,贴代码: 1 ''' 2 #python将某文件夹下的文件名存储到excel中 3 ''' 4 5 #导入所需模块 6 import os 7 import xlwt 8 9 #定义要处理的文件 ...

  3. char*,const char*和string 互转

    1. string转const char* 1 string s = "abc"; 2 const char* c_s = s.c_str(); 2. const char*转st ...

  4. [leetcode]49. Group Anagrams重排列字符串分组

    是之前的重排列字符串的延伸,判断是重排列后存到HashMap中进行分组 这种HashMap进行分组的方式很常用 public List<List<String>> groupA ...

  5. LVS之3---健康检查

    LVS实现健康性检查功能 LVS高可用性 解决方案: 由Director对各RS健康状态进行检查,失败时禁用,成功时启用 keepalived heartbeat/corosync ldirector ...

  6. Ubuntu18.04换源

    引用:https://blog.csdn.net/u012308586/article/details/102953882 第一步.sudo  cp   /etc/apt/sources.list  ...

  7. springboot源码解析-管中窥豹系列之项目类型(二)

    一.前言 Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去. 我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot ...

  8. Mysql中varchar类型的猫腻!

    varchar的存储规则 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节). 5.0版本以上,varchar(20),指的是20字符,无论存 ...

  9. [Abp]Abp 新手入门随记

    项目结构说明 *.Application 应用服务实现 *.Application.Contracts 包含DTO及应用服务接口 *.DbMigrator 数据迁移项目 开发和生产环境迁移数据库架构和 ...

  10. 如何在Linux(CentOS7)环境搭建 Jenkins 服务器环境

    最近,我自己要亲手搭建一套完整的企业级 CI/CD 环境,这个环节里面涉及了很多内容,没有办法把这么多的内容都放在一篇文章里,所以 Jenkins 的安装和Java 的 JDK 安装我就是分了两篇文章 ...