Pyside2 和 material 设计
Pyside2 and material design
我正在编写一个简单的应用程序来控制实验设置。我已经完成了大部分重要的工作,并且我认为为 UI 小部件使用 material 设计会很好。
我发现这个存储库包含我想要的所有小部件 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()
[...]
有人知道怎么做吗?
目前你只有一个选择,
为您使用的每个元素使用样式 sheets。
我发现一个 old repository 试图提供一组样式规则,以便您可以直接在代码中使用它们,但我不知道它们与纯 material-设计外观。
您可以为每个元素设置样式,例如:
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:
sheet = ":/some_style_sheet_file.qss"
with open(sheet, "r") as f:
style = f.read()
app = QApplication([])
# ...
app.setStyleSheet(style)
sys.app(app.exec_())
另一方面,如果你想使用 Qml,你可以像 this example 一样轻松实现。
我正在编写一个简单的应用程序来控制实验设置。我已经完成了大部分重要的工作,并且我认为为 UI 小部件使用 material 设计会很好。
我发现这个存储库包含我想要的所有小部件 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()
[...]
有人知道怎么做吗?
目前你只有一个选择, 为您使用的每个元素使用样式 sheets。
我发现一个 old repository 试图提供一组样式规则,以便您可以直接在代码中使用它们,但我不知道它们与纯 material-设计外观。
您可以为每个元素设置样式,例如:
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:
sheet = ":/some_style_sheet_file.qss"
with open(sheet, "r") as f:
style = f.read()
app = QApplication([])
# ...
app.setStyleSheet(style)
sys.app(app.exec_())
另一方面,如果你想使用 Qml,你可以像 this example 一样轻松实现。