- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法获取小部件的实际背景颜色。在我的特殊情况下,我在使用 QTabWidget 中的小部件时遇到了问题。
这是在 Windows7 上。所以经典小部件有一些灰色背景,而选项卡中的小部件通常用白色背景绘制。
我试过:
def bgcolor(widget):
color = widget.palette().color(widget.backgroundRole()) # version 1
color = widget.palette().color(QtGui.QPalette.Background) # version 2
rgba = color.red(), color.green(), color.blue(), color.alpha()
return rgba
这几乎是我可以从 Qt 文档以及 google 和 SO 提供的内容中找到的。但是,这是行不通的。
我正在测试 TabWidget 内部和外部的小部件,上面的函数为颜色明显不同的小部件返回相同的颜色。也就是说,它总是返回灰色,即使对于选项卡中的纯白色小部件也是如此。
我是不是漏掉了什么?
编辑:
我的问题是在使用 matplotlib 时,当嵌入 QTabWidget 时,matplotlib 会绘制带有错误背景颜色的“无”facecolor 的图形:灰色,即使父窗口小部件是白色。
为了解决这个问题,我想获取小部件的背景颜色并将其设置为图形的背景颜色。虽然这可能是一个 matplotlib 问题,但我猜这是最快的解决方法。当我注意到我无法获得合适的颜色时,我变得坚持 :)
最佳答案
调色板正在返回正确的颜色。
您可能犯的错误是您假设“背景”对于所有小部件始终意味着相同的事情。我们以一个未修改的QListWidget
为例。在具有传统浅色方案的桌面上,这可能会显示为 3D 凹陷面板内的白色视口(viewport)。但是如果你查询这个小部件的“背景”,你会看到这样的东西:
>>> widget = QtGui.QListWidget()
>>> widget.palette().color(QtGui.QPalette.Background).name()
'#edecec'
这显然不是白色的。所以 Background
是查询此小部件的错误颜色角色。相反,它看起来像 Base
可能更合适:
>>> widget.palette().color(QtGui.QPalette.Base).name()
'#ffffff'
值得注意的是 documentation for color roles声明 Background
和 Foreground
是过时的值,建议使用 Window
和 WindowText
。也许这是因为以前的术语现在被认为具有误导性。
更新:
在使用基于像素图样式的平台上,一些报告的调色板颜色将与小部件的视觉外观不匹配。此问题特别影响 Windows 和 OSX,因此可以解释为什么您无法获得选项卡的明显背景颜色。此问题记录在 Qt FAQ 中,这也给出了一些可能的解决方案(尽管 PyQt5 支持 QProxyStyle
选项,但 PyQt4 不支持)。
关于python - 获取小部件的背景颜色 - 真的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23014011/
这个问题在这里已经有了答案: 关闭 12 年前。 Possible Duplicate: Why can't Python handle true/false values as I expect?
我是不是遗漏了什么或者这是 ruby 中的错误? a = %w(foo bar baz) a.include? "foo" # => true a.size == 3
从 Modelica 文档来看,注释 Evaluate 似乎只对参数有影响: https://build.openmodelica.org/Documentation/ModelicaReferenc
为了避免嵌套的 if 语句并提高可读性,我想创建一个switch(true){ ... } Coldfusion 中的声明。我在 php 中经常使用这个,但是当我在 Coldfusion 中尝试这个时
嗨,我正在尝试处理 ajax json 响应 这是我的代码 success: function (j) { switch(true) { case (j.cho
我之前在我的 TF 代码中使用过这个: count = "${var.whatever == "true" ? 1 : 0}" 这非常适合我想要使用的东西。但是,我正在考虑如何最好地使用类似于说的
我之前在我的 TF 代码中使用过这个: count = "${var.whatever == "true" ? 1 : 0}" 这非常适合我想要使用的东西。但是,我正在考虑如何最好地使用类似于说的
这个问题在这里已经有了答案: How can I return pivot table output in MySQL? (10 个答案) 关闭 5 年前。 我正在尝试构建一个以唯一列值作为列名的表
我制作了一个简单的 JDialog,其中包含一个标签和一个按钮,它基本上相当于信息对话框。所以在对话框中,有一个方法 display() 我在其中调用了 setVisible(true) 五次。 据我
在 bash 4.2.8(1)-release (x86_64-pc-linux-gnu) 在 Ubuntu 11.04 上这个命令 [ $(wc -l /var/www/some.log|cut -
我正在使用 c 语言进行并发处理,我有一个进程池。为此,我让每个 child 都在一个 While (True) 循环中。为了杀死 child ,我正在使用一个全局变量和一个信号处理程序来修改它来打破
我正在尝试选择填写了字段的数据库条目。数据库有两种插入数据的方式,一种输入评论,一种不输入,我希望只选择填写了评论的行。 $requete = "SELECT * FROM daysoff WHER
如何在 JavaMail session 中setDebug(true) 捕获流并在我的日志记录框架中使用它? (缺少下载源代码,更改接受流作为参数的方法,重新编译它,...) 更一般地说,Java
我是 JavaScript 的新手,我刚刚发现了我无法理解的奇怪行为: var magicVar = Math.sin; magicVar == true; // it returns false m
对此感到困惑。 在两台服务器上运行相同版本的 MySQL。 (从完全相同的 rpm 构建)- 沿线的某个地方,一些开发人员改变了一些东西...... 服务器 1: mysql> select ( no
我在查看 OpenSSL 中使用的一些预处理器宏时,从 crypto/stack/safestack.h 中发现了以下内容: #define CHECKED_STACK_OF(type, p) \
所以我遇到了一个问题,我的正则表达式看起来像这样:/true|false/。 当我检查单词 falsee 时,我从这个正则表达式中得到一个 true,有没有办法将它限制为确切的 true 或 fals
我正在对这个恶意 JavaScript 行进行一些试验:var undefined = true; JavaScript 中每个未初始化的变量都有 undefined 的值,这只是一个保存特殊值 'u
我想将 PHP 的微时间存储为我在 MySQL 中的时间戳。 我去过told最好用 DECIMAL 存储它,但我找不到理想的大小。 有谁知道 microtime(true) 返回的最大大小是多少,所以
在 PHP 中,当您在 URL 中包含诸如“var=true”之类的内容时,URL 中的“true”和“false”是否被转换为 boolean 变量,或者它们是否等于文本“true”还是“假”?例如
我是一名优秀的程序员,十分优秀!