【发布时间】:2016-08-31 13:33:35
【问题描述】:
我已经在网上阅读了很多帖子,但仍然找不到解决方案。我的问题应该很简单:如何在不单击按钮或使用计时器的情况下关闭 Pyqt 窗口。 我试过的代码贴在下面
from PyQt4 import QtGui, QtCore
import numpy as np
import progressMeter_simple
import sys
import time
import pdb
class ProgressMeter(progressMeter_simple.Ui_Dialog, QtGui.QDialog):
def __init__(self):
QtGui.QDialog.__init__(self)
progressMeter_simple.Ui_Dialog.__init__(self)
self.setupUi(self)
self.progressBar.setRange(0, 0)
QtGui.QApplication.processEvents()
def termination(self):
time.sleep(5)
self.close()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
Dialog = ProgressMeter()
Dialog.show()
Dialog.termination()
sys.exit(app.exec_())
我的 Pyqt GUI 是使用 Qt 设计器设计的,它只是一个从左到右不断移动的进度条(忙碌指示)。
但是,当我运行上面的代码时,Pyqt 窗口关闭后终端仍然挂起。 Ctrl+C 也无法终止进程。 简而言之,如何在不单击按钮或使用计时器的情况下正确关闭/终止 Pyqt 窗口?
【问题讨论】:
-
将Progress 上的关闭信号挂钩到
app.exit。 -
好吧,如果您使用
QTimer,解决方案是非常简单。是什么让你认为你不能使用一个?