0
我正在pyqt4中编写一个应用程序,显示用户在主窗口上执行某些操作的剩余时间。我在Python 2.7中使用Qt5.5和pyqt4。pyqt4 - QTimer停止关闭按钮时
from PyQt4 import QtCore, QtGui
class MainWin(QtGui.QMainWindow):
def __init__(self):
super(MainWin, self).__init__()
self.initUI()
self.time = 120
self.centralwidget = QtGui.QWidget(self)
self.lcdNumber = QtGui.QLCDNumber(self.centralwidget)
self.lcdNumber.setGeometry(QtCore.QRect(200, 170, 500, 550))
self.displayTime()
self.setCentralWidget(self.centralwidget)
self.timer = QtCore.QTimer()
self.timer.timeout.connect(self.updateTime)
self.timer.start(1000)
def initUI(self):
self.resize(1100, 850)
# Do other stuff
def displayTime(self):
minute, sec = divmod(self.time,60)
self.lcdNumber.display('{}:{:02d}'.format(minute,sec))
def updateTime(self):
self.time -= 1
self.displayTime()
if self.time == 0:
self.timer.stop()
def main():
import sys
app = QtGui.QApplication(sys.argv)
mw = MainWin()
mw.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
这工作我预想的样子,但是当用户点击关闭按钮后没有释放它,他能停止计时,而他仍然可以看到什么是窗口。这个问题似乎只在Windows上。
发布证明问题的[MCVE](http://stackoverflow.com/help/mcve)。 – ekhumoro
我无法复制:我按住了关闭按钮,定时器继续运行。我在Linux上,PyQt 4.11.4 – Mel
我也无法重现(在Linux上)。你有什么样的平台,你使用的是什么版本的Qt/PyQt? – ekhumoro