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