2017-08-13 53 views
1

我爲我的應用程序啓用了QDarkStyle,它爲進度條塊提供了自己的顏色。我想要做的是僅爲進度條提供以前的默認樣式。這個怎麼做?我試過設置ui.Progressbar.setStylesheet('')不幸運。如何在PyQt中獲得Qtwidgets的原生樣式?

我也不知道QP中QProgressBar的原生默認樣式是什麼。所以我甚至無法設置我的樣式表。

而且這樣做

QProgressBar { 
    border: 1px solid #76797C; 
    text-align: center; 
    color:black; 
} 

    QProgressBar::chunk { 
     background-color:green ; 
} 

進度條的填充過程中刪除移動樣的效果,只顯示綠色的大塊顏色,沒有效果。如何解決這個問題?

回答

1

如果您只想使用QWidget.setStyle(style),則可以指定每個窗口小部件的樣式。例如,您可以將應用程序樣式設置爲深色樣式,然後使用樣式設置爲QCommonStyle的進度條小部件,這是默認的原生樣式。

在下面的例子中,我使用了Fusion風格,因爲我沒有黑暗的風格。

from PyQt5.QtWidgets import * 

app = QApplication([]) 

# store native style 
native_style = QCommonStyle() 

# set new style globally 
s = QStyleFactory.create('Fusion') 
app.setStyle(s) 

w = QWidget() 
w.setFixedSize(300, 200) 
l = QVBoxLayout(w) 
l.addWidget(QLabel('Label')) 
l.addWidget(QPushButton('Button')) 
l.addWidget(QProgressBar()) 

# create progressbar in old style 
p = QProgressBar() 
p.setStyle(native_style) 
l.addWidget(p) 

w.show() 
app.exec_() 

您可以清楚地看到兩個進度條中的一個具有不同的樣式。

enter image description here

相關問題