我有一个包含 QTabWidget 的 PyQt 主窗口。选项卡小部件包含一些按钮和文本框。
我想为整个选项卡背景着色,而不仅仅是在选项卡栏区域中粘贴的选项卡。
我没有使用样式表,并且更喜欢使用调色板,因为我已经在使用调色板,但如果样式表是唯一的选择,那也没关系。
我试过了:
p = self.tabWidget.palette()
p.setColor(self.tabWidget.backgroundRole(), Qt.red)
self.tabWidget.setPalette(p)
这会产生一个红色选项卡栏区域,但主背景仍然是白色的。
关闭自动填充,使用
self.tabWidget.setAutoFillBackground(False)
略有不同,各个选项卡现在颜色很好,但主体仍然是白色的。
尝试一些样式表:
self.tabWidget.setStyleSheet("QWidget {background-color: yellow }")
这会将选项卡的主体着色,但也会将其他所有内容着色为黄色,包括按钮和文本框。此外,所有伸出的小标签都是黄色的。自动填充没有任何影响。
关于如何为选项卡主体着色但不擦除其他小部件有什么想法吗?
我正在使用 PyQt 版本 4.10 和 Python 2.7。
使用样式表,您可以执行以下操作:
stylesheet = """
QTabBar::tab:selected {background: gray;}
QTabWidget>QWidget>QWidget{background: gray;}
"""
self.setStyleSheet(stylesheet)
V 形允许引用小部件的子项。它告诉 Qt 将样式表应用于应用程序中任何 QTabWidget 的孙子级(请参阅Qt 样式表语法 http://qt-project.org/doc/qt-4.8/stylesheet-syntax.html#selector-types)。选项卡“body”是 QTabWidget 的孙子。
它的渲染效果不太好,您必须调整一些设置。请参阅 Qt 文档自定义 QTabWidget 和 QTabBar http://qt-project.org/doc/qt-4.8/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)