2014-01-06 3 views
5

QWidgetshere의 스타일 시트에 대한 포괄적 인 예가 있습니다. 불행히도 QDial이 예제에서 빠져 있습니다.스타일 시트로 QDial 사용자 정의

스타일 시트만으로 외관 (기본적으로 색상, 회전식 손잡이의 테두리)을 변경할 수 있습니까? this article에서는 새로운 다이얼 클래스가 스타일 시트를 지원하지만 Qt의 표준 클래스로는 수행 할 수 없습니까?

슬라이더/스크롤 막대 예제는 모든 세부 사항을 조정할 수있는 방법을 보여주기 때문에 QDial과 비슷한 것이 있는지 궁금합니다. 기본 이미지를 교환 할 수 있지만 색상, 경계선을 설정하는 쉬운 방법을 선호합니다.

나는 backgroud-color, background, color과 같은 표준 속성을 시도했지만 성공하지 못했습니다. 또한 QDial::handle을 시도 했으므로 힌트가 유용 할 것입니다.

+1

'QDial'은 (여기에 오래된 버그 보고서 https://bugreports.qt-project.org/browse/QTBUG-1160의) 스타일 시트를 지원하지 않습니다. 사용자 정의 QStyle을 통해 사용자 정의 할 수 있지만. 새로운 퓨전 스타일로'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)