This code from a tutorial works fine in PyQt5 if I call it from __main__
    window = QWidget()
    layout = QVBoxLayout()
    layout.addWidget(QPushButton('Top'))
    layout.addWidget(QPushButton('Bottom'))
    window.setLayout(layout)
    window.show()
If I put the code class in the __init__ of a class:
class MainWindow (QMainWindow):
    def __init__ (self):
        print ("HERE 1")
        window = QWidget()
        layout = QVBoxLayout()
        layout.addWidget(QPushButton('Top'))
        layout.addWidget(QPushButton('Bottom'))
        window.setLayout(layout)
        window.show()
        print ("HERE 2")
        return
then in __main__:
app = QApplication (args)
mw = MainWindow.MainWindow ()
return app.exec_ ()
Then the print statemets happen but no widgets display.
Why would window not display in the second case? (The corresponding C++ code would display it.)
 
    