我有一个使用Qt Creator创建的UI文件。当我通过PyCharm执行应用程序时,主窗口会短暂打开,然后关闭。我认为它是垃圾收集,但我不知道如何让它工作。有什么想法吗?
Calculator.py
from PyQt5.QtWidgets import QApplication
import MainWindow
import sys
class Calculator(QApplication):
def __init__(self):
args = sys.argv
QApplication.__init__(self, args)
self.initializeApplication()
def initializeApplication(self):
app = MainWindow.MainWindow()
app.show()
if __name__ == '__main__':
app = Calculator()
sys.exit(app.exec_())
MainWindow.py
from PyQt5 import uic
from PyQt5.QtWidgets import QMainWindow
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self, None)
uic.loadUi(r'interface/MainWindow.ui', self)
self.initializeUI()
def initializeUI(self):
self.setWindowTitle('Calculator')
我是Python的新手,所以请耐心等待。我看了几个不同的例子,但是当你的应用程序跨越多个源文件时,没有任何内容真正涵盖。感谢。
答案 0 :(得分:1)
垃圾回收器删除它的注释是正确的,因为函数中创建的变量仅在调用函数时存在。为了能够执行GUI,您必须调用exec_()
来生成所需的主循环。
class Calculator(QApplication):
def __init__(self):
args = sys.argv
QApplication.__init__(self, args)
self.initializeApplication()
self.exec_()
def initializeApplication(self):
self.app = MainWindow.MainWindow()
self.app.show()
if __name__ == '__main__':
app = Calculator()