使用样式表自定义 QDial
Posted
技术标签:
【中文标题】使用样式表自定义 QDial【英文标题】:Customize QDial with stylesheet 【发布时间】:2014-01-06 14:35:01 【问题描述】:有QWidgets
here样式表的综合示例。不幸的是,示例中缺少QDial
。
我可以仅通过样式表来更改外观(基本上是旋钮的颜色、边框)吗?在this article 中一个新的表盘类支持样式表,但是不能用Qt 的标准类来完成吗?
滑块/滚动条示例展示了如何调整每个细节,所以我想知道QDial
是否有类似的东西?我知道我可以交换底层图像,但更喜欢一种简单的方法来设置它的颜色、边框。
我尝试了backgroud-color
、background
、color
等标准属性,但没有成功。也试过 QDial::handle
,所以提示会很有用。
【问题讨论】:
QDial
不支持样式表(这是一个旧的错误报告bugreports.qt-project.org/browse/QTBUG-1160)。虽然它可以通过自定义QStyle
进行自定义。查看 QDial
使用新 Fusion 样式的外观。
【参考方案1】:
您可以使用样式表更改背景,但似乎就是这样。
也许自从您在 2014 年 1 月 6 日提出这个问题后情况发生了变化,但我能够让样式表仅在后台工作。我尝试的其他一切都没有效果。
注意背景变化对针的影响。
from PyQt4 import QtGui, QtCore
import os
import time
class MyDial(QtGui.QDial):
style ='''
QDial
background-color:QLinearGradient(
x1: 0.177, y1: 0.004, x2: 0.831, y2: 0.911,
stop: 0 white,
stop: 0.061 white,
stop: 0.066 lightgray,
stop: 0.5 #242424,
stop: 0.505 #000000,
stop: 0.827 #040404,
stop: 0.966 #292929,
stop: 0.983 #2e2e2e
);
'''
def __init__(self, parent=None):
super(MyDial, self).__init__(parent)
self.setStyleSheet(self.style)
self.setRange(0,100)
self.setValue(0)
self.setWrapping(True) # Smooth transition from 99 to 0
self.setNotchesVisible(True)
【讨论】:
以上是关于使用样式表自定义 QDial的主要内容,如果未能解决你的问题,请参考以下文章
R语言使用table1包绘制(生成)三线表使用单变量分列构建三线表自定义设置不显示overall