Seite 1 von 1

Qt-Designer-Dateien *.ui zur Laufzeit laden

Verfasst: Sonntag 26. Oktober 2014, 17:07
von dibujo
Hallo,
ich habe in diversen Beiträgen gelesen, dass man die *.ui-Dateien auch zur Laufzeit laden kann.
Ich bin Python-GUI-Anfänger, programmiere auf einem Mac mit PyCharm (PySide) und Qt-Designer. Z. Z. gehe ich noch den Umweg über das Terminal "--> pyside.uic ui-datei.ui > ui-datei.py".
Gibt's da einen Trick? :K
Danke für eure Mühen :)

Re: Qt-Designer-Dateien *.ui zur Laufzeit laden

Verfasst: Sonntag 26. Oktober 2014, 17:42
von BlackJack
@dibujo: Das sollte wie bei C++ gehen mit einem `QUiLoader`-Exemplar.

Wird die GUI denn überhaupt so komplex das man den Qt-Designer benötigt?

Re: Qt-Designer-Dateien *.ui zur Laufzeit laden

Verfasst: Sonntag 26. Oktober 2014, 20:11
von dibujo
Hallo,
danke der Nachfrage.
Ich lerne Python nicht nur wegen dieses einen Projekts.
Für mich ist dieses Projekt der Einstieg, um mich in Python schlau zu machen. Langfristig möchte ich Python und das Raspberry Pi als Physical Computing und Informatik-Projekt an unserer Schule einführen. Daher dieser "Aufwand", der nur für dieses Kunstprojekt sicherlich übertrieben wäre.
Zurück zu meiner Eingangsfrage: Deinen aufgeführten QUiLoader gibt es bei PySide anscheinend nicht
viele Grüße
dibujo

Re: Qt-Designer-Dateien *.ui zur Laufzeit laden

Verfasst: Sonntag 26. Oktober 2014, 20:57
von BlackJack
@dibujo: Also bei mir gibts den:

Code: Alles auswählen

In [4]: from PySide import QtUiTools

In [5]: QtUiTools.QUiLoader
Out[5]: PySide.QtUiTools.QUiLoader

Re: Qt-Designer-Dateien *.ui zur Laufzeit laden

Verfasst: Sonntag 26. Oktober 2014, 21:02
von dibujo
Gracias!

Re: Qt-Designer-Dateien *.ui zur Laufzeit laden

Verfasst: Montag 27. Oktober 2014, 07:31
von dibujo
Hallo,
sorry, aber ich versuche mich jetzt schon seit einer Stunde. Das Lesen des Doku sowie das Beispiel aus dem Forum hilft mir bislang auch noch nicht weiter. So schwer kann es eigentlich nicht sein?! Ich wollte ein einfaches Beispiel aus einem Tutorial anpassen.

Code: Alles auswählen

import sys
from PySide.QtGui import QMainWindow, QPushButton, QApplication
from Ui_Beende_Programm import Ui_MainWindow

app = QApplication(sys.argv)

class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)

frame = MainWindow()
frame.show()
sys.exit(app.exec_())
Vielen Dank für die Hilfe im Voraus!

Re: Qt-Designer-Dateien *.ui zur Laufzeit laden

Verfasst: Montag 27. Oktober 2014, 08:39
von dibujo
Hi,
hab's inzwischen doch selber rausbekommen!

Code: Alles auswählen

import sys
from PySide.QtGui import QMainWindow, QPushButton, QApplication
from PySide.QtUiTools import QUiLoader

app = QApplication(sys.argv)

class MainWindow(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        loader = QUiLoader()
        self.ui = loader.load('Beende_Programm.ui', self)
        #self.ui.show()

frame = MainWindow()
frame.ui.show()
sys.exit(app.exec_())
Gibt's elegantere Lösungen?
Viele Grüße
dibujo