Seite 1 von 1

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

Verfasst: Sonntag 3. Januar 2021, 17:22
von Slicey
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_())


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

Verfasst: Sonntag 3. Januar 2021, 17:30
von pillmuncher
PySide2.QtWidgets ist ein Modul. Was soll da herauskommen, wenn du davon erben willst?

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

Verfasst: Sonntag 3. Januar 2021, 17:33
von Slicey
Ich möchte auf meine GUI zugreifen. Wenn ich das nicht importiere kann ich meine QApplication nicht ausführen.

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

Verfasst: Sonntag 3. Januar 2021, 17:51
von __deets__
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.

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

Verfasst: Sonntag 3. Januar 2021, 18:20
von pillmuncher
Erben != Importieren