super-class __init__() of type StartWindow was never called
Есть два класса:
1 . Window()
class Window(QMainWindow):
def __init__(self):
self.layout = QVBoxLayout()
self.setGeometry(0, 0, 1200, 500)
self.setWindowTitle('Basket Parse')
# Введите дату
self.dateLabel = QLabel(self)
self.dateLabel.move(10, 10)
self.dateLabel.setText('Введите дату')
self.date = QLineEdit(self)
self.date.move(10, 50)
self.date.setInputMask('99.99')
# Выберите браузер
self.check = QComboBox(self)
self.check.move(200, 30)
self.check.addItems(["Google", "Firefox"])
# Кнопка рассчитать
self.startButton = QPushButton(self)
self.startButton.move(10, 100)
self.startButton.setText('Рассчитать')
self.saveButton = QPushButton(self)
self.saveButton.move(120, 100)
self.saveButton.setText('Сохранить в CSV')
self.freqTable = QTableWidget(self)
self.freqTable.setGeometry(700, 150, 480, 320)
self.freqTable.setColumnCount(5)
self.freqHeader = self.freqTable.horizontalHeader()
self.freqHeader.setSectionResizeMode(0, QHeaderView.Stretch)
self.table = QTableWidget(self)
self.table.setGeometry(10, 150, 680, 320)
self.table.setColumnCount(7)
# Настройка ширины ячеек
self.header = self.table.horizontalHeader()
self.header.setSectionResizeMode(1, QHeaderView.Stretch)
self.header.setSectionResizeMode(2, QHeaderView.ResizeToContents)
self.header.setSectionResizeMode(3, QHeaderView.ResizeToContents)
self.header.setSectionResizeMode(4, QHeaderView.ResizeToContents)
self.header.setSectionResizeMode(5, QHeaderView.ResizeToContents)
self.startButton.clicked.connect(self.startProgram)
self.saveButton.clicked.connect(self.saveInFile)
# Добавление элементов в шаблон
self.layout.addWidget(self.date)
self.layout.addWidget(self.dateLabel)
self.layout.addWidget(self.startButton)
self.layout.addWidget(self.table)
self.layout.addWidget(self.check)
self.setLayout(self.layout)
2 . StartWindow()
class StartWindow(Window):
def __init__(self):
super().__init__()
Также есть следующий код, который запускает приложение
def startApp():
app = QApplication([])
# Исп. как контейнер
window = StartWindow()
window.show()
app.exec_()
if __name__ == '__main__':
startApp()
StartWindow
наследник Window
. Я хотел сделать так, чтобы при вызове StartWindow
вызывался __init__()
родителя. Для этого я использую функцию super()
. Но у меня почему-то возникает следующая ошибка:
window = StartWindow()
^^^^^^^^^^^^^
self.setGeometry(0, 0, 1200, 500)
RuntimeError: super-class __init__() of type StartWindow was never called
Не могу понять проблему. До этого в классе Window
был super()
, а у StartWindow
__init__()
не было вообще и всё работало
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
Я подумал, что будет правильнее перенести его в дочерний элемент, но столкнулся с этой проблемой. Подскажите, где ошибка?