GUI - Ich erhalte Fehlermeldung [wie Beitrag]

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Strawk
User
Beiträge: 230
Registriert: Mittwoch 15. Februar 2017, 11:42
Wohnort: Aachen
Kontaktdaten:

Hallo!

Ich erhalte die Fehlermedlung: TypeError: ('Wrong base class of toplevel widget', (<class '__main__.MeinDialog02'>, 'QMainWindow'))

Code: Alles auswählen

import sys
from PyQt5 import QtWidgets, uic
class MeinDialog02(QtWidgets.QDialog):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.ui = uic.loadUi("scomp02.ui", self)
        # Slots einrichten
        self.ui.buttonOK.clicked.connect(self.onOK)
        self.ui.buttonAbbrechen.clicked.connect(self.onAbbrechen)
        
    def onOK(self):
        # Daten auslesen
        print("HB_Position_1: {}".format(self.ui.HB_Position_1.text()))
        print("HB_Position_2: {}".format(self.ui.HB_Position_2.text()))
        print("HB_Position_3: {}".format(self.ui.HB_Position_3.text()))
        print("HB_Position_4: {}".format(self.ui.HB_Position_4.text()))
        print("HB_Position_5: {}".format(self.ui.HB_Position_5.text()))
        self.close
        
    def onAbbrechen(self):
        print("Schade")
        self.close()

app = QtWidgets.QApplication(sys.argv)
dialog = MeinDialog02()
dialog.show()
sys.exit(app.exec_())
Bitte Hilfe!
Strawk
Ich programmiere erfolglos, also bin ich nicht.
__deets__
User
Beiträge: 14536
Registriert: Mittwoch 14. Oktober 2015, 14:29

Und in welcher Zeile deines Codes?
Benutzeravatar
Strawk
User
Beiträge: 230
Registriert: Mittwoch 15. Februar 2017, 11:42
Wohnort: Aachen
Kontaktdaten:

runfile('C:/Users/Karl Kraft/Documents/Programmierung_ausser_PHP/Python/Anaconda_Navigator/Scomp/Scomp_Programm_01.py', wdir='C:/Users/Karl Kraft/Documents/Programmierung_ausser_PHP/Python/Anaconda_Navigator/Scomp')
Traceback (most recent call last):

File "<ipython-input-1-a5999108d94d>", line 1, in <module>
runfile('C:/Users/Karl Kraft/Documents/Programmierung_ausser_PHP/Python/Anaconda_Navigator/Scomp/Scomp_Programm_01.py', wdir='C:/Users/Karl Kraft/Documents/Programmierung_ausser_PHP/Python/Anaconda_Navigator/Scomp')

File "C:\Users\Karl Kraft\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile
execfile(filename, namespace)

File "C:\Users\Karl Kraft\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)

File "C:/Users/Karl Kraft/Documents/Programmierung_ausser_PHP/Python/Anaconda_Navigator/Scomp/Scomp_Programm_01.py", line 36, in <module>
dialog = MeinDialog02()

File "C:/Users/Karl Kraft/Documents/Programmierung_ausser_PHP/Python/Anaconda_Navigator/Scomp/Scomp_Programm_01.py", line 13, in __init__
self.ui = uic.loadUi("scomp02.ui", self)

File "C:\Users\Karl Kraft\Anaconda3\lib\site-packages\PyQt5\uic\__init__.py", line 226, in loadUi
return DynamicUILoader(package).loadUi(uifile, baseinstance, resource_suffix)

File "C:\Users\Karl Kraft\Anaconda3\lib\site-packages\PyQt5\uic\Loader\loader.py", line 72, in loadUi
return self.parse(filename, resource_suffix, basedir)

File "C:\Users\Karl Kraft\Anaconda3\lib\site-packages\PyQt5\uic\uiparser.py", line 1021, in parse
actor(elem)

File "C:\Users\Karl Kraft\Anaconda3\lib\site-packages\PyQt5\uic\uiparser.py", line 822, in createUserInterface
self.toplevelWidget = self.createToplevelWidget(cname, wname)

File "C:\Users\Karl Kraft\Anaconda3\lib\site-packages\PyQt5\uic\Loader\loader.py", line 57, in createToplevelWidget
(type(self.toplevelInst), classname)))

TypeError: ('Wrong base class of toplevel widget', (<class '__main__.MeinDialog02'>, 'QMainWindow'))
Ich programmiere erfolglos, also bin ich nicht.
__deets__
User
Beiträge: 14536
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das UI file ist als QMainWidget gebaut. Du wirfst dem loader aber ein QDialog vor. Das geht halt nicht. Eines von beiden muss sich ändern.
Benutzeravatar
Strawk
User
Beiträge: 230
Registriert: Mittwoch 15. Februar 2017, 11:42
Wohnort: Aachen
Kontaktdaten:

Vielen Dank! Das war die Lösung.
euer
Strawk
Ich programmiere erfolglos, also bin ich nicht.
Antworten