Pyside2 и дизайн материала - PullRequest
       10

Pyside2 и дизайн материала

0 голосов
/ 12 февраля 2019

Я пишу простое приложение для управления экспериментальной установкой.Я выполнил большинство важных вещей, и я подумал, что было бы неплохо использовать дизайн материалов для виджетов пользовательского интерфейса.

Я нашел этот репозиторий, в котором есть все виджеты, которые я хотел бы https://github.com/laserpants/qt-material-widgets, но я понятия не имею, как импортировать их в мой проект.Я использую Pyside2 и qtDesigner, загружая файл пользовательского интерфейса с помощью QUiLoader, например:

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()

 [...]

Кто-нибудь знает, как это сделать?

1 Ответ

0 голосов
/ 13 февраля 2019

На данный момент у вас есть только один вариант для достижения этой цели, используя таблицы стилей для каждого из используемых вами элементов.

Я нашел старое хранилище , которое пыталось предоставить наборправила стиля, так что вы можете использовать их непосредственно в своем коде, но я не знаю, насколько они похожи на чисто материальный дизайн.

Вы можете установить стиль для каждого элемента, например:

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 с другой стороны, вы можете легко добиться этого, как в этом примере .

...