使用样式表自定义QDial

时间:2014-01-06 14:35:02

标签: qt qwidget qtstylesheets qdial

QWidgets here的样式表有全面的示例。遗憾的是,示例中缺少QDial

我可以通过样式表更改外观(基本上是旋钮的颜色,边框)吗?在this article中,新的拨号类支持样式表,但是不能用Qt的标准类完成吗?

滑块/滚动条示例显示了如何调整每个细节,所以我想知道QDial是否有类似的东西?我知道我可以交换底层图像,但更喜欢一种简单的方法来设置它的颜色,边框。

我已尝试过backgroud-colorbackgroundcolor等标准属性但未成功。还尝试了QDial::handle,因此提示很有用。

1 个答案:

答案 0 :(得分:2)

您可以使用样式表更改背景,但看起来就是这样。

自从你在2014年1月6日提出这个问题后,事情可能已经发生了变化,但我能够让样式表仅适用于后台。我试过的其他一切都没有效果。

注意背景变化如何影响针头。

The QDial widget rendered in FC20 under MATE using the giving stylesheet

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)