繁体   English   中英

PyQt5 GUI 不能与 Spyder 接近

[英]PyQt5 GUI can't be close from Spyder

我正在尝试使用 PyQt5 创建一个简单的 GUI。 我在 Windows 10 中从 Spyder(Anaconda 最新版本,python 3.7)运行我的代码。 这是我的代码:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot

class App(QWidget):

    def __init__(self):
        super().__init__()
        self.title = 'PyQt5 button test'
        self.left = 50
        self.top = 50
        self.width = 720
        self.height = 800
        self.initUI()

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        button = QPushButton('PyQt5 button', self)
        button.setToolTip('This is an example button')
        button.move(100,70)
        button.clicked.connect(self.on_click)

        self.show()

    @pyqtSlot()
    def on_click(self):
        print('PyQt5 button click')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    app.exec_()

弹出一个窗口。 现在,如果我通过单击关闭按钮(GUI 的右上角)关闭 GUI,Spyder IP 控制台不会恢复正常状态。 它冻结了。 我应该在代码中使用什么来解决问题?

谢谢,莫妮

关闭窗口似乎不会关闭 QApplication 对象。 为此,通过在 on_Click 定义之后添加这两行来覆盖主窗口的 closeEvent 函数

  def closeEvent(self,event):
     QApplication.quit()

这将关闭窗口和 QApplication 对象,并且控制应返回到控制台

您可以尝试查看以下线程中的答案: Can't Kill PyQT Window after close it。 这需要我重新启动内核

似乎与您的问题和解决方案相似。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM