[Maya Python] Anzeige .ui erstellt von Qt Designer in Maya

Einführung

[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.

Bereiten Sie eine UI-Datei vor

Vorerst habe ich eine solche Benutzeroberfläche erstellt. UI.JPG

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

Notieren Sie sich eine kleine Marmelade

** 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. ui01.jpg Wie in der Abbildung gezeigt, wird das zentrale Widget, wenn es so eingestellt ist, dass es das Layout unterbricht, überhaupt nicht angezeigt. ui02.jpg 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. ui03.jpg Erstes Startdiagramm nach Layouteinstellung

Bereiten Sie ein Programm vor, um das Fenster anzuzeigen

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. ui04.JPG

Programmdetails

Benutzeroberfläche laden

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".

Holen Sie sich Wert von der Benutzeroberfläche

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. ui05.JPG Das Einstellen auf diese Weise ist praktisch, da Sie die UI-Datei ändern können, ohne sie programmgesteuert neu zu schreiben.

Platzieren Sie die Benutzeroberfläche

self.setCentralWidget(self.UI) Platzieren Sie die Benutzeroberfläche.

Schaltflächenverhalten erstellen

self.UI.refreshPushButton.clicked.connect(self.refreshPushButton) Verbinden Sie die Funktion, wenn Sie auf die Schaltfläche klicken, deren Objektname "refreshPushButton" lautet. ui06.JPG 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.

abschließend

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. ..

Referenz

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

[Maya Python] Anzeige .ui erstellt von Qt Designer in Maya
Erstellen Sie Qt-Designerteile mit Python (PyQt)
UI-Automatisierung mit Python
Mayapy - Python in Maya
Zeigen Sie UTM-30LX-Daten in Python an
UI-Automatisierung Teil 2 in Python
Sortieren nach Datum in Python
Audio-Wellenform-Anzeige in Python
Zeigen Sie Zeichen wie AA in Python an
Anzeigen von LaTeX-Notationsformeln in Python, matplotlib
Zeigen Sie eine Liste der Alphabete in Python 3 an
Zeigen Sie Python 3 im Browser mit MAMP an
So zeigen Sie die neunundneunzig Tabelle in Python an
Lesen Sie die Datei Zeile für Zeile mit Python
Automatisieren Sie Jobs, indem Sie Dateien in Python bearbeiten
Lesen Sie die Datei Zeile für Zeile mit Python
Python-Dolmetscher in Maya, Houdini, Mixer, Nuke
[Python] Fortschrittsanzeige nach Fortschrittsbalken mit tqdm
Pyopengl im Browser anzeigen (Python + Aal)
Common Mock von Moto im Unit-Test von Python
Verwenden Sie pathlib in Maya (Python2.7), um sich auf das kommende Python3.7 vorzubereiten
So zeigen Sie Hello World in Python an
Ich habe ein Passwort-Tool in Python erstellt.
Ausrichtungsalgorithmus durch Einfügemethode in Python
Szenenerkennung nach GIST-Feature-Quantität in Python
Stellen Sie die von Eigen of C ++ erstellte Bibliothek mit Boost.Numpy in Python zur Verfügung.
[Python] So zeigen Sie die Elemente der Liste nebeneinander an
Die erste Web-App, die von Python-Anfängern erstellt wurde
Empfangen und Anzeigen von HTML-Formulardaten in Python
Teilen Sie Kamelfallzeichenfolgen in Python Wort für Wort
Ich möchte den Fortschritt in Python anzeigen!