如何在PyQt中获取Qtwidgets的原生样式?
How to get the native styles of Qtwidgets in PyQt?
我为我的应用程序启用了 QDarkStyle,它为进度条块提供了自己的颜色。我想要做的是只为进度条保留以前的默认样式。如何做到这一点?
我试过设置 ui.Progressbar.setStylesheet('')
,但运气不好。
我也不知道Qt中QProgressBar的原生默认样式是什么。所以我什至无法将我的样式表设置为那个。
也在做这个
QProgressBar {
border: 1px solid #76797C;
text-align: center;
color:black;
}
QProgressBar::chunk {
background-color:green ;
}
移除进度条填充时的移动类效果,只显示绿色块颜色,无任何效果。如何解决这个问题?
如果需要,您可以简单地使用 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_()
可以很明显的看到两个进度条其中一个是不同风格的
我为我的应用程序启用了 QDarkStyle,它为进度条块提供了自己的颜色。我想要做的是只为进度条保留以前的默认样式。如何做到这一点?
我试过设置 ui.Progressbar.setStylesheet('')
,但运气不好。
我也不知道Qt中QProgressBar的原生默认样式是什么。所以我什至无法将我的样式表设置为那个。
也在做这个
QProgressBar {
border: 1px solid #76797C;
text-align: center;
color:black;
}
QProgressBar::chunk {
background-color:green ;
}
移除进度条填充时的移动类效果,只显示绿色块颜色,无任何效果。如何解决这个问题?
如果需要,您可以简单地使用 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_()
可以很明显的看到两个进度条其中一个是不同风格的