Почему переопределенный виджет не добавляется в главное окно Pyqt5?

Хочу переопределить нажатие клавиши Enter/Return в QTextEdit.
Все делается, но в главное окно оно почему-то не добавляется.

Что подскажите?
Добавление в `Layoutы не подходит, так как в нужном проекте нет этого.

from PyQt5 import QtCore, QtWidgets, QtGui
import sys


class MyTextEdit(QtWidgets.QTextEdit):
    def __init__(self, parent):
        QtWidgets.QTextEdit.__init__(self)

    def keyPressEvent(self, e):
        if e.key() == QtCore.Qt.Key_Return:
            print(e.key())


class Example(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        self.centralwidget = QtWidgets.QWidget(self)
        self.t = MyTextEdit(self.centralwidget)
        self.setCentralWidget(self.centralwidget)


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    ui = Example()
    ui.resize(500, 500)
    ui.show()
    exit(app.exec_())

Ответы (1 шт):

Автор решения: S. Nick

Это не очень хорошо что в вашем проекте нет менеджеров компоновки.

Попробуйте так:

import sys
from PyQt5 import QtCore, QtWidgets, QtGui


class MyTextEdit(QtWidgets.QTextEdit):
    def __init__(self, parent=None):                             
        super(MyTextEdit, self).__init__(parent)                 # !!! +++

    def keyPressEvent(self, e):
        if e.key() == QtCore.Qt.Key_Return:
            print(e.key())


class Example(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        
        self.centralwidget = QtWidgets.QWidget(self)
        self.setCentralWidget(self.centralwidget)
        
        self.t = MyTextEdit(self.centralwidget)


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    ui = Example()
    ui.resize(500, 500)
    ui.show()
    exit(app.exec_())

введите сюда описание изображения

→ Ссылка