[Maya Python] Überprüfen Sie den Inhalt des Skripts 1, 2, [3] Das in (https://qiita.com/elloneil/items/3f4a47501204af16cd0a) geschriebene Skript eignet sich gut für ein kleines Skript, erfordert jedoch viel Aufwand, um eine komplizierte Benutzeroberfläche zu erstellen. Daher werde ich versuchen, die Benutzeroberfläche mit QtDesigner zusammenzustellen. Als CG-Künstler wäre es schön, ein so leicht verständliches Tool zu haben, anstatt sich um Skripte zu kümmern. Dieses Mal möchte ich es so gestalten, dass ich die Benutzeroberfläche in Maya anzeigen und einfache Operationen ausführen kann, um durch Berühren ein Gefühl dafür zu bekommen. Da es einige Methoden wie PySide, PySide2 und PyQt5 gibt, werde ich sie als eigenes Memorandum schreiben. Die Betriebsumgebung ist Maya 2019,2020.
Vorerst habe ich eine solche Benutzeroberfläche erstellt.
Informationen zur Erstellung finden Sie auf dieser Website.
GUI-Programmierung mit PyQt5 und Python3: Übung [0] Kapitel 5 Verwenden wir Qt Designer Benutzeroberfläche mit QtDesigner erstellen
** Stellen Sie sicher, dass Sie das Layout einstellen ** Wenn Sie es einfach so platzieren, wie es ist, folgt die Benutzeroberfläche nicht, selbst wenn Sie die Fenstergröße ändern, oder das Fenster ist zu klein, wenn Sie das Fenster starten. Wie in der Abbildung gezeigt, wird das zentrale Widget, wenn es so eingestellt ist, dass es das Layout unterbricht, überhaupt nicht angezeigt. Nachdem Sie das Layout festgelegt und die Fenstergröße angepasst haben, legen Sie die Mindestgröße mit Größenbeschränkungen fest. Dann können Sie ein Fenster erstellen, das richtig passt. Die Benutzeroberfläche folgt Ihnen auch dann, wenn Sie die Fenstergröße ändern. Erstes Startdiagramm nach Layouteinstellung
Vorerst der vollständige Code
# -*- coding: utf-8 -*-
from PySide2 import QtWidgets
from PySide2.QtUiTools import QUiLoader
from maya.app.general.mayaMixin import MayaQWidgetBaseMixin
#Geben Sie den Pfad direkt an
UIFILEPATH = 'C:/Users/YN/Desktop/testUI.ui'
##Klasse, die MainWindow erstellt
class MainWindow(MayaQWidgetBaseMixin, QtWidgets.QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
#Geben Sie den UI-Pfad an
self.UI = QUiLoader().load(UIFILEPATH)
#Holen Sie sich den Fenstertitel von der Benutzeroberfläche
self.setWindowTitle(self.UI.windowTitle())
#Widget zentrieren
self.setCentralWidget(self.UI)
#Verbindungstaste
self.UI.refreshPushButton.clicked.connect(self.refreshPushButton)
def refreshPushButton(self):
print ('refresh')
##Starten Sie MainWindow
def main():
window = MainWindow()
window.show()
if __name__ == '__main__':
main()
Kopieren und in den Skripteditor einfügen Setzen Sie "UIFILEPATH" auf den zuvor erstellten UI-Pfad. Und wenn Sie es ausführen, können Sie die in Maya erstellte Benutzeroberfläche vorerst überprüfen.
from PySide2.QtUiTools import QUiLoader
Um die Benutzeroberfläche zu laden, importieren Sie "QUiLoader" aus "QtUiTools".
self.UI = QUiLoader().load(UIFILEPATH)
Lesen Sie "UIFILEPATH" und instanziieren Sie es als "self.UI".
self.setWindowTitle(self.UI.windowTitle())
Wenn Sie keinen Fenstertitel angeben, wird ein Fenster mit einem geeigneten Namen erstellt. Rufen Sie es daher aus der UI-Datei ab, mit der der Fenstertitel erstellt wurde. Natürlich können Sie hier auch "string" eingeben.
self.UI.windowTitle()
Wenn Sie den Eigenschaftsnamen in der Benutzeroberfläche angeben, können Sie den dort festgelegten Wert abrufen.
Das Einstellen auf diese Weise ist praktisch, da Sie die UI-Datei ändern können, ohne sie programmgesteuert neu zu schreiben.
self.setCentralWidget(self.UI)
Platzieren Sie die Benutzeroberfläche.
self.UI.refreshPushButton.clicked.connect(self.refreshPushButton)
Verbinden Sie die Funktion, wenn Sie auf die Schaltfläche klicken, deren Objektname "refreshPushButton" lautet.
Geben Sie den Objektnamen in Qt Designer folgendermaßen an.
def refreshPushButton(self):
print ('refresh')
Es wurde eine Funktion zum Drucken der Aktualisierung hinzugefügt, wenn die Taste gedrückt wird. Schreiben Sie hier die Funktion, die Sie für diese Schaltfläche einstellen möchten.
Zuerst war ich im Dunkeln und fragte, wo ich anfangen soll, also hoffe ich, dass es hilft. Derzeit wird die Benutzeroberfläche in Maya schnell angezeigt. Wenn Sie verstehen, dass dies der Fall ist, können Sie die Benutzeroberfläche meiner Meinung nach immer komplizierter gestalten.
Mayas PySide2 war verwirrt, weil ein Update von PySide unterwegs war und die Beschreibungsmethode geändert wurde. Es ist noch komplizierter, weil es Suchanfragen wie ähnliches PyQt5 trifft. ..
Es war sehr hilfreich. Vielen Dank.
GUI-Programmierung mit PyQt5 und Python3: Übung [0] Kapitel 5 Verwenden wir Qt Designer Benutzeroberfläche mit QtDesigner erstellen
Recommended Posts