启动后PyQt窗口崩溃[重复]

问题描述 投票:-1回答:2

这个问题在这里已有答案:

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

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_())
pyqt pyqt5
2个回答
1
投票

当你将它连接到run_omd中的按钮时,你将onPushOmdButton调用中的括号留下了它会崩溃。

尝试:

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

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


0
投票

我同意MalloyDekacroix的观点:

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_())
© www.soinside.com 2019 - 2024. All rights reserved.