TypeError: module() takes at most 2 arguments (3 given)

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
Slicey
User
Beiträge: 3
Registriert: Sonntag 3. Januar 2021, 16:57

Sonntag 3. Januar 2021, 17:22

Hallo,

ich versuche mit dem Qt-Designer eine Anwendung zu entwickeln und will das Aussehen und die Logik voneinander trennen. Jedoch gibt es wohl irgendwie Probleme mit dem Import oder der Klasse. Die vom Qt-Designer erstellte Datei heißt: "ui_start.py" und die Klasse: "Ui_Startmenue_Datenbanken". Der gezeigte Code befindet sich in der Datei: "start.py". Ich würde mich sehr über Hilfe freuen.

Fehlermeldung:

Traceback (most recent call last):
File "Dateipfad", line 11, in <module>
class Startmenue(QtWidgets):
TypeError: module() takes at most 2 arguments (3 given)

Process finished with exit code 1

Code: Alles auswählen


import sys
from PySide2 import QtCore, QtGui, QtWidgets
from PySide2.QtCore import (QCoreApplication, QMetaObject, QObject, QPoint, QRect, QSize, QUrl, Qt)
from PySide2.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont, QFontDatabase, QIcon, QLinearGradient, QPalette, QPainter, QPixmap, QRadialGradient)
from PySide2.QtWidgets import *

# GUI Import

from ui_start import Ui_Startmenue_Datenbanken

class Startmenue(QtWidgets):
    def __init__(self):
        QtWidgets.__init__(self)
        self.ui = Ui_Startmenue_Datenbanken()
        self.ui.setupUi(self)

        self.ui.button_datenbank.clicked.connect(lambda: self.ui.stackedWidget.setCurrentIndex(self.ui.startmenue_datenbanken))
        self.ui.button_test.clicked.connect(lambda: self.ui.stackedWidget.setCurrentIndex(self.ui.startmenue_entsperren))
        self.ui.button_entsperren.clicked.connect(lambda: self.ui.stackedWidget.setCurrentIndex(self.ui.hauptmenue_start))
        self.ui.button_noch_keine_datenbank.clicked.connect(lambda: self.ui.stackedWidget.setCurrentIndex(self.ui.startmenue_erstellen))
        self.ui.button_erstellen.clicked.connect(lambda: self.ui.stackedWidget.setCurrentIndex(self.ui.startmenue_datenbanken))

        self.button_datenbank.clicked.connect(self.datenbank_erstellen)

        self.show()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    i = Startmenue()
    sys.exit(app.exec_())

Benutzeravatar
pillmuncher
User
Beiträge: 1268
Registriert: Samstag 21. März 2009, 22:59
Wohnort: München

Sonntag 3. Januar 2021, 17:30

PySide2.QtWidgets ist ein Modul. Was soll da herauskommen, wenn du davon erben willst?
In specifications, Murphy's Law supersedes Ohm's.
Slicey
User
Beiträge: 3
Registriert: Sonntag 3. Januar 2021, 16:57

Sonntag 3. Januar 2021, 17:33

Ich möchte auf meine GUI zugreifen. Wenn ich das nicht importiere kann ich meine QApplication nicht ausführen.
__deets__
User
Beiträge: 10095
Registriert: Mittwoch 14. Oktober 2015, 14:29

Sonntag 3. Januar 2021, 17:51

Du musst von QWidget erben. Das steckt im Modul PySide2.QtWidgets, und du importierst ALLE dessen Namen mit

Code: Alles auswählen

from PySide2.QtWidgets import *
Das macht man nicht. Man importiert nur, was man wirklich braucht.

Code: Alles auswählen

from PySide2.QtWidgets import QWidget
Und von QWidget (OHNE s!) erbst du dann, und den rufst du auch auf im Konstruktor.
Benutzeravatar
pillmuncher
User
Beiträge: 1268
Registriert: Samstag 21. März 2009, 22:59
Wohnort: München

Sonntag 3. Januar 2021, 18:20

Erben != Importieren
In specifications, Murphy's Law supersedes Ohm's.
Antworten