Seite 1 von 1
PyQt5 .ui Datei einbinden
Verfasst: Mittwoch 14. August 2013, 12:37
von Zennoe
Liebes Forum,
ich habe mit dem Qt Designer eine .ui-Datei erstellt. Nun versuche ich diese mit PyQt5 zu benutzen. Das Problem ist aber, dass ich nur eine Anleitung für PyQt4 habe. Ich möchte aber PyQt5 verwenden. Und eine Google-Suche hat mir auch nicht weitergeholfen. :K
Hat da vielleicht eine Ahnung von?
Mein Skript für PyQt4 sähe so aus:
Code: Alles auswählen
import sys
from PyQt4 import QtGui, QtCore, uic
class Fenster(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.ui = uic.loadUi("ui/main.ui", self)
# Slots einrichten
self.ui.senden.clicked.connect(self.onSend)
self.ui.nachricht.returnPressed.connect(self.onSend)
self.ui.disconnect.clicked.connect(self.onDisconn)
def onSend(self):
print("Gesendet")
def onDisconn(self):
print("Getrennt")
app = QtGui.QApplication(sys.argv)
window = Fenster()
window.show()
sys.exit(app.exec_())
Re: PyQt5 .ui Datei einbinden
Verfasst: Mittwoch 14. August 2013, 13:53
von lunar
Zennoe hat geschrieben:ich habe mit dem Qt Designer eine .ui-Datei erstellt. Nun versuche ich diese mit PyQt5 zu benutzen. Das Problem ist aber, dass ich nur eine Anleitung für PyQt4 habe. Ich möchte aber PyQt5 verwenden. Und eine Google-Suche hat mir auch nicht weitergeholfen. :K
Wie kann man denn die
offizielle Referenz nicht finden?!
Re: PyQt5 .ui Datei einbinden
Verfasst: Donnerstag 15. August 2013, 12:50
von Zennoe
Den Artikel hab ich auch schon gefunden. Allerdings habe ich keinen Plan, wie ich den Code generieren soll. Deshlab wollte ich die .ui-Datei einbinden.

:
The code that is generated has an identical structure to that generated by Qt’s uic and can be used in the same way.
The code is structured as a single class that is derived from the Python object type. The name of the class is the name of the toplevel object set in Designer with Ui_ prepended. (In the C++ version the class is defined in the Ui namespace.) We refer to this class as the form class.
Re: PyQt5 .ui Datei einbinden
Verfasst: Donnerstag 15. August 2013, 13:05
von BlackJack
@Zennoe: Pssst, die verlinkte Webseite ist länger als das was sofort im Browser angezeigt wird. Man kann runter scrollen und da kommen dann noch mehr Informationen. Zum Beispiel über das `uic`-Modul.
Re: PyQt5 .ui Datei einbinden
Verfasst: Donnerstag 15. August 2013, 14:06
von Zennoe
Sry
Okay. Aber das ist exakt der gleiche Befehl wie in PyQt4. Es hat mir also nicht weiter geholfen

Und für die Klasse gibt es keine Referenz der Klasse QtGui. Deshalb frag ich ja!

Re: PyQt5 .ui Datei einbinden
Verfasst: Donnerstag 15. August 2013, 14:15
von BlackJack
@Zennoe: Hä? Ja, das sieht genau so aus wie bei PyQt4. Und wo ist nun das Problem? Welches *konkrete* Problem hast Du?
Wobei Deine `uic.loadUi()`-Zeile zuviel macht. Entweder Du bindest das Ergebnis an `self.ui` und verwendest das Attribut, oder Du erbst vom passenden Wigdet und übergibts `self` als zweites Argument an `loadUi()`. *Beides* zu machen ist nicht sinnvoll.
Re: PyQt5 .ui Datei einbinden
Verfasst: Donnerstag 15. August 2013, 14:49
von Zennoe
Das Problem ist wohl er folgendes:
Code: Alles auswählen
Traceback (most recent call last):
** IDLE Internal Exception:
File "C:\Python33\lib\idlelib\run.py", line 339, in runcode
exec(code, self.locals)
File "C:/Users/Thomas Schmitz/Documents/Python/Chatomat/client/run.py", line 3, in <module>
class Fenster(QtGui.QMainWindow):
AttributeError: 'module' object has no attribute 'QMainWindow'
Also die QtGui hat kein QMainWindow. Das Problem ist, dass ich nicht weiß, wie ich das sonst lösen soll. Kennst sich denn wirklich niemand mit PyQt5 aus?
@BlackJack: Danke habe ich sofort verbessert. Es ist aber klar, dass der Code bis dahin noch nicht ausgeführt wird.
Re: PyQt5 .ui Datei einbinden
Verfasst: Donnerstag 15. August 2013, 14:51
von EyDu
Du hast doch den Link zur
Referenz.
Und bei dem Eintrag zu QtGui steht sogar explizit:
PyQt4’s QtGui module has been split into PyQt5’s QtGui, QtPrintSupport and QtWidgets modules.