我正在编写一个简单的应用程序来控制实验设置。我完成了大部分重要的工作,并且我认为将UI材料设计用于UI小部件会更好。
我发现这个包含所有小部件的仓库我想要https://github.com/laserpants/qt-material-widgets,但我不知道如何在我的项目中导入它们。我正在使用Pyside2和qtDesigner,使用QUiLoader加载ui文件,例如:
class ConsoleWindow(QObject):
def __init__(self, uifilename):
super(ConsoleWindow, self).__init__(None)
self.window = QUiLoader().load( QFile( 'uifile.ui' ) )
self.setupCallbacks()
self.window.installEventFilter(self)
self.window.show()
[...]
有谁知道怎么做?
目前,您只有一个选项可以实现此目的,为您使用的每个元素使用样式表。
我发现了一个old repository试图提供一组样式规则,所以你可以直接在你的代码中使用它们,但我不知道它们与纯材料设计外观有多相似。
您也可以为每个元素设置样式,如:
class MyWidget(QWidget):
def __init__(self):
QWidget.__init__(self)
# Changing background color
self.setStyleSheet("background-color: rgb(0.2, 0.3, 0.8, 0.2);")
或为您的应用程序加载一般样式表:
sheet = ":/some_style_sheet_file.qss"
with open(sheet, "r") as f:
style = sheet.read()
app = QApplication([])
# ...
app.setStyleSheet(style)
sys.app(app.exec_())
另一方面,如果你想使用Qml,你可以像this example一样轻松实现。