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.)