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