问题标签 [qpalette]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
11226 浏览

python - 如何为 PyQt QTabwidget 着色

我有一个包含 QTabWidget 的 PyQt 主窗口。选项卡小部件包含一些按钮和文本框。

我想为整个标签背景着色,而不仅仅是标签栏区域中的标签。

我没有使用样式表,并且更喜欢使用调色板,因为我已经在使用调色板,但是如果样式表是唯一的选择,那没关系。

我试过了:

这会产生一个红色的标签栏区域,但主背景仍然是白色的。

关闭自动填充,使用 self.tabWidget.setAutoFillBackground(False) 略有不同,各个选项卡现在颜色很好,但主体仍然是白色的。

尝试一个小样式表:

这会为选项卡的主体着色,但也会将其他所有内容着色为黄色,包括按钮和文本框。此外,所有突出的小标签都是黄色的。自动填充没有任何影响。

关于如何为选项卡主体着色但不清除其他小部件的任何想法?

我正在使用 PyQt 4.10 版和 Python 2.7。

0 投票
1 回答
2013 浏览

python - PyQt4 QPalette 不工作

使用btn.backgroundRole()只为按钮提供绿色边框。
使用btn.foregroundRole()更改按钮的文本颜色
使用btn.windowRole()给我错误

TypeError:参数与任何重载调用不匹配:
QPalette.setColor(QPalette.ColorGroup, QPalette.ColorRole, QColor): 参数 1 具有意外类型 'str'
QPalette.setColor(QPalette.ColorRole, QColor): 参数 1 具有意外类型'字符串'

尝试QtGui.QPalette.Background代替btn.windowRole()但什么都不做
也尝试过QtGui.QPalette.Base但什么
也不QtGui.QPalette.Window

如何使用调色板更改按钮颜色?
我无法纠正问题。我正在使用 Windows 7、PyQt4 和 Python 3.4

0 投票
1 回答
269 浏览

pyqt - 如何在 PyQt/PySide 中获取 QPalette 的组和角色?

我如何在 PyQt/PySide 应用程序中查询这些值,而不是“手动”定义列表groups和(在下面的代码中)?roles

0 投票
1 回答
1997 浏览

qt - 更改禁用的 QIcon 色调颜色

我有一个带有自定义主题的应用程序,并且禁用的图标是亮灰色的。我想更改禁用的图标色调颜色。

现在我知道有这样的可能性:

但我有很多图标,我不想只为禁用状态创建另一组图标。

是否可以将QIcons 的 tint 颜色从浅灰色更改为红色或黑色或任何其他颜色?

0 投票
1 回答
4769 浏览

qt - How to set QPalette back to default system palette?

I start my application initially in a dark color theme according to this example.

I would like to make possible for users, to switch back to their current default system color profiles of their operating system (as I start that application without setting QPalette). Is that posssible?

0 投票
2 回答
2619 浏览

c++ - Qt - 在不使用 WA_TranslucentBackground 的情况下以图像作为背景渲染 QFrame

我需要设置QFrame一个背景图片:http: //imgur.com/RnSghvV。这是我尝试过的:

这就是我得到的:

在此处输入图像描述

如您所见,边缘有一个恼人的黑框,我想将其移除,并仅查看图像。我怎么做?

PS,可以通过使用属性使其工作Qt:: WA_TranslucentBackground,如此处所示。但是,在我的情况下,QFrame 将包含其他子小部件,其中一些是通过 OpenGL 渲染的 QImage,并且设置Qt:: WA_TranslucentBackground会使这些图像在 Windows 上不可见。所以我正在寻找一个不使用这个属性的解决方案。

编辑:

基于 Evgeny 提出的解决方案,我尝试了这个(我使用 325 x 400 作为小部件的尺寸,因为这些是图像的尺寸):

有了这个,它看起来像这样:

在此处输入图像描述

右侧和底部仍然显示灰色背景。如果我添加setStyleSheet("background: transparent"),灰色背景变为黑色。

0 投票
2 回答
11278 浏览

qt - How to change (remove) selection/active color of QListWidget

In my QListWidget, there are some items that have non-default background color, I set them like so inside the custom QListWidget class:

Those non-default colors that I set are distorted by the QListWidget's selection color. See an example:

enter image description here

Items three and four are supposed to be the same color, but they are not since the item four is selected, and thus the result color is a summation of original color and QListWidget's selection (active item?) color.

My question is how to edit or remove that selection color?

I tried inside my QListWidget (in special slot when I want to change the item's background color):

But it did not produce any effect. what am I doing wrong? Is it a correct variable to set? Do I set it up inside QListWidget or inside its delegate?

Update: I tried using stylesheets as pointed by comment/answer, however, it will not be possible to use them for my application, because the items in my rows have 3 states (so I would need to use three colors). E.g., 3 states that correspond to three colors: pink for active, green for inactive and gray for the rest. When using stylesheets, I cannot set the custom property (let's say QListWidget::item[Inactive="true"]) to a single QListWidgetItem, but for the full QListWidget, and therefore it colors all the rows the same color.

Stylesheets were tried for similar problem here, and didn't work, therefore I make conclusion using stylesheets is not the way to go.

The background change method that I used originally works fine for my purpose, but I cannot figure out how to get rid of the default selection color (transparent light blue) which adds to the background color and produces the mixed color.

0 投票
2 回答
1234 浏览

c++ - QPalette 不适用于子 QWidget

我想用 QLenerGradient 刷我的子小部件。我使用 QtDesigner 创建了 ui。

在此处输入图像描述

但是我不能用这段代码刷这个小部件。(ui.colorBarWidget是正常的QWidget是由QtDesigner创建的。)

此外,此代码适用于独立的 QWidget 应用程序。这是它的输出:

在此处输入图像描述

但我不能在我的设计中做同样的事情。我可以用 styleSheet 做到这一点

但为什么我不能用 QPalette 做到这一点。

提前致谢。

0 投票
1 回答
510 浏览

c++ - 获取 QPushButton 按下的背景颜色

如何获得 QPushButton 的按下背景颜色?

提前致谢!!!

0 投票
0 回答
254 浏览

python - 如何使用 python 更改 qt 中复选框的颜色?

我尝试了剪切代码,但不知何故它对我不起作用。有什么建议么?