- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在 Qt 4.8 中,我有一个 QTreeWidget
,树中的每个节点都根据其值为其文本着色(例如,成功节点的绿色文本,失败节点的红色文本)。
这很好,但是当我尝试在树中选择项目时遇到了问题。选择一个项目时,Qt 将所选文本的 QPalette::ColorRole
设置为 QPalette::HighlightedText
。默认情况下,这会导致文本颜色变为白色。在一个完美的世界中,我希望当前的选择完全不改变文本颜色。
从文档来看,QPalette::setColor(ColorRole role, const QColor & color)
提供了一种改变突出显示文本颜色的方法,但它只能设置ColorRole
使用固定颜色。
有没有办法完全忽略与给定 QPalette::ColorRole
关联的文本颜色?理想情况下,我希望突出显示的文本颜色角色单独保留文本颜色; QPalette::HighlightedText
根本没有与之关联的文本颜色,当文本被突出显示时,它只是保持其非突出显示的颜色。
在 Qt 中有什么方法可以很容易地做到这一点吗?我想避免从 QPalette
或 QBrush
继承并破解重载函数来执行此操作,但我在文档中找不到任何对我有帮助的东西出。
最佳答案
您如何更改每个节点的默认未选中文本颜色(Qt::WindowText
,如果我没记错的话)?如果您有一个包含如下代码的方法:
palette.setColor(Qt::WindowText, color);
treeItem->setPalette(palette);
您总是可以为两种颜色角色调用 setColor()
:
palette.setColor(Qt::WindowText, color);
palette.setColor(Qt::HighlightedText, color);
treeItem->setPalette(palette);
希望这对您有所帮助!
关于c++ - 忽略突出显示的文本调色板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29242035/
有没有一种方法可以“标记”对象的属性,使它们在反射中“突出”? 例如: class A { int aa, b; string s1, s2; public int AA
我是一名优秀的程序员,十分优秀!