PyQt window closes immediately after opening
pyqt4, python
Solution
You need to keep a reference to the opened window, otherwise it goes out of scope and is garbage collected, which will destroy the underlying C++ object also. Try:
def Start():
m = myWindow()
m.show()
return m
class myWindow():....
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
window = Start()
app.exec_()
Problem
I am getting an issue when trying to open a PyQt window. The code below is an example of my original code. When I imported the module in `import Test` and ran `test.Start()`, I got the following error: QCoreApplication::exec: The event loop is already running After some research, I found out it was because I had already already made a `QApplication`. ``` test.py.... import sys def Start(): app = QApplication(sys.argv) m = myWindow() m.show() app.exec_() class myWindow():.... if __name__ == "__main__": Start() ``` So then I read that I could rewrite my code like this and it would fix the error: ``` test.py.... def Start(): m = myWindow() m.show() class myWindow():.... if __name__ == "__main__": import sys app = QApplication(sys.argv) Start() app.exec_() ``` Now I no longer get the QCoreApplication::exec: The event loop is already running error, but my window closes almost immediately after opening.