2014-01-06 52 views
5

樣式表有QWidgetshere。不幸的是QDial從示例中缺失。使用樣式表自定義QDial

是否可以通過樣式表更改外觀(基本上是旋鈕的顏色,邊框)?在this article一個新的撥號類是支持樣式表,但不能用Qt的標準類來完成嗎?

滑塊/滾動條示例顯示每個細節可以如何調整,所以我想知道QDial是否有類似的東西?我知道我可以交換底層圖片,但是隻會設置顏色和邊框。

我試過標準屬性,如backgroud-color,background,color沒有成功。也試過QDial::handle,所以提示會很有用。

+1

'QDial'不支持樣式表(在這裏是一個古老的bug報告https://bugreports.qt-project.org/browse/QTBUG-1160)。雖然它可以通過自定義的'QStyle'進行定製。用新的Fusion風格檢查'QDial'的外觀。 –

回答

1

您可以使用樣式表更改背景,但似乎是這樣。

自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)