PyQt 窗口在启动后崩溃



我正在尝试启动以下代码。应用程序窗口打开,但只要我单击按钮,窗口就会崩溃。

import sys
from qtpy import QtWidgets
from src.ui.mainwindow import Ui_MainWindow
from src.Run_OMD_Process import run_omd
app = QtWidgets.QApplication(sys.argv)

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, parent = None):
        super().__init__(parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.setWindowTitle("OMD Tool")
        print("MainWindow")
        self.ui.pushButton.clicked.connect(self.onPushOmdButton)
        # self.ui.pushButton_2.clicked.connect(self.exitUi)
    def onPushOmdButton(self):
        self.ui.pushButton.clicked.connect(run_omd())

window = MainWindow()
window.show()
sys.exit(app.exec_())
它崩溃了,

因为当您将run_omd呼叫连接到onPushOmdButton中的按钮时,您在呼叫上留下了括号。

尝试:

self.ui.pushButton.clicked.connect(run_omd)

此方法也只是将按钮重新连接到其他功能。 所以基本上,你必须点击两次按钮才能得到我相信你所追求的结果。 我不确定这是否是你的意图。

我同意马洛伊迪卡克鲁瓦的观点:

import sys
from pyqt import QtWidgets
from src.ui.mainwindow import Ui_MainWindow
from src.Run_OMD_Process import run_omd
app = QtWidgets.QApplication(sys.argv)

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, parent = None):
        super().__init__(parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.setWindowTitle("OMD Tool")
        print("Main`enter code here`Window")
        self.ui.pushButton.clicked.connect(self.onPushOmdButton)
        # self.ui.pushButton_2.clicked.connect(self.exitUi)
    def onPushOmdButton(self):
        // i.e. this could so something else. 
        // for instance, open a new window.
        // perform a calculation.
        // As your code I also feel requires the user to click again. 
window = MainWindow()
window.show()
sys.exit(app.exec_())

最新更新