Seite 1 von 1

GUI - Ich erhalte Fehlermeldung [wie Beitrag]

Verfasst: Sonntag 10. Juni 2018, 18:31
von Strawk
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

Re: GUI - Ich erhalte Fehlermeldung [wie Beitrag]

Verfasst: Sonntag 10. Juni 2018, 18:44
von __deets__
Und in welcher Zeile deines Codes?

Re: GUI - Ich erhalte Fehlermeldung [wie Beitrag]

Verfasst: Sonntag 10. Juni 2018, 18:45
von Strawk
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'))

Re: GUI - Ich erhalte Fehlermeldung [wie Beitrag]

Verfasst: Sonntag 10. Juni 2018, 18:54
von __deets__
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.

Re: GUI - Ich erhalte Fehlermeldung [wie Beitrag]

Verfasst: Sonntag 10. Juni 2018, 19:05
von Strawk
Vielen Dank! Das war die Lösung.
euer
Strawk