ich habe eine GUI in Qt Designer erstellt. Wenn ich die GUI direkt starte, klappt das. Beim Aufruf durch ein extra Modul mit Funktionen dagegen nicht. Warum?
Code der GUI:
Code: Alles auswählen
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_MediaVerwaltung(object):
def setupUi(self, MediaVerwaltung):
MediaVerwaltung.setObjectName("MediaVerwaltung")
MediaVerwaltung.resize(630, 380)
self.pushButton_movies = QtWidgets.QPushButton(parent=MediaVerwaltung)
self.pushButton_movies.setGeometry(QtCore.QRect(10, 10, 300, 300))
self.pushButton_movies.setObjectName("pushButton_movies")
self.pushButton_music = QtWidgets.QPushButton(parent=MediaVerwaltung)
self.pushButton_music.setGeometry(QtCore.QRect(320, 10, 300, 300))
self.pushButton_music.setObjectName("pushButton_music")
self.pushButton_close = QtWidgets.QPushButton(parent=MediaVerwaltung)
self.pushButton_close.setGeometry(QtCore.QRect(10, 320, 610, 50))
font = QtGui.QFont()
font.setFamily("MS Shell Dlg 2")
font.setPointSize(25)
font.setBold(True)
font.setWeight(75)
self.pushButton_close.setFont(font)
self.pushButton_close.setObjectName("pushButton_close")
self.retranslateUi(MediaVerwaltung)
QtCore.QMetaObject.connectSlotsByName(MediaVerwaltung)
def retranslateUi(self, MediaVerwaltung):
_translate = QtCore.QCoreApplication.translate
MediaVerwaltung.setWindowTitle(_translate("MediaVerwaltung", "MediaVerwaltung"))
self.pushButton_movies.setText(_translate("MediaVerwaltung", "list movies"))
self.pushButton_music.setText(_translate("MediaVerwaltung", "list music"))
self.pushButton_close.setText(_translate("MediaVerwaltung", "BEENDEN"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MediaVerwaltung = QtWidgets.QDialog()
ui = Ui_MediaVerwaltung()
ui.setupUi(MediaVerwaltung)
MediaVerwaltung.show()
sys.exit(app.exec())
Code: Alles auswählen
from tkinter import Tk, sys
from qtpy import QtWidgets, QtCore
import functions
from Messages import canc
from ui.GUI_MediaVerwaltung import Ui_MediaVerwaltung
app = QtWidgets.QApplication(sys.argv)
class MediaVerwaltung(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.ui = Ui_MediaVerwaltung()
self.ui.setupUi(self)
self.setWindowTitle("Media-Verwaltung")
self.ui.pushButton_movies.clicked.connect(self.list_movies)
self.ui.pushButton_music.clicked.connect(self.list_music)
self.ui.pushButton_close.clicked.connect(self.end)
fensterbreite = 630
fensterhoehe = 380
self.setFixedWidth(fensterbreite)
self.setFixedHeight(fensterhoehe)
xy = functions.center_window(self, fensterbreite, fensterhoehe)
self.move(int(xy[0]), int(xy[1]))
def start_app(self):
root = Tk()
root.withdraw() # 2. (inaktives) Fenster unterdrücken
root.update()
# w = 300
# h = 50
# x, y = functions.center_window(self, w, h)
# root.geometry('%dx%d+%d+%d' % (w, h, x, y))
def list_movies(self):
print('movies')
def list_music(self):
print('music')
def end(self):
canc()
if __name__ == '__main__':
window = MediaVerwaltung()
window.show()
window.start_app()
sys.exit(app.exec_())
Traceback (most recent call last):
File "D:\__Sicherungsdaten\_Programmiersprachen\PycharmProjects\MovieCDList\MediaVerwaltung.py", line 54, in <module>
window = MediaVerwaltung()
File "D:\__Sicherungsdaten\_Programmiersprachen\PycharmProjects\MovieCDList\MediaVerwaltung.py", line 17, in __init__
self.ui.setupUi(self)
File "D:\__Sicherungsdaten\_Programmiersprachen\PycharmProjects\MovieCDList\ui\GUI_MediaVerwaltung.py", line 15, in setupUi
self.pushButton_movies = QtWidgets.QPushButton(parent=MediaVerwaltung)
TypeError: arguments did not match any overloaded call:
QPushButton(parent: Optional[QWidget] = None): argument 'parent' has unexpected type 'MediaVerwaltung'
QPushButton(text: Optional[str], parent: Optional[QWidget] = None): not enough arguments
QPushButton(icon: QIcon, text: Optional[str], parent: Optional[QWidget] = None): not enough arguments
Process finished with exit code 1
Ich hoffe jemand findet den Fehler.
VG aus dem Süd-Westen Deutschlands