如何在PyQt中获取Qtwidgets的本地样式?

3

我已经为我的应用程序启用了QDarkStyle,它为进度条块提供了自己的颜色。我想做的是只为进度条恢复以前的默认样式。如何操作?

我尝试使用ui.Progressbar.setStylesheet('')设置,但没有成功。

我也不知道Qt中QProgressBar的本机默认样式是什么。因此,我甚至无法将我的样式表设置为该样式。

同时进行以下操作

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

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

如何去除进度条填充时的移动效果,只显示绿色块颜色而无任何效果。如何解决?

1个回答

3
您可以通过使用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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接