我已经在主窗口中使用了以下代码,但我需要在弹出窗口中复制它。在运行时,它不会输入处理程序def,我不知道为什么。我已经尝试了所有我能想到的东西。有人能告诉我我做错了吗?
from PyQt4 import QtGui, QtCore
import sys
CurrentTime = 0
class widgetWindow(QtGui.QWidget):
def __init__(self, parent = None):
QtGui.QWidget.__init__(self,parent)
super(widgetWindow, self).__init__()
widgetWindow.start(self)
def start(self):
window = QtGui.QMainWindow(self)
window.setAttribute(QtCore.Qt.WA_DeleteOnClose)
CentralWidget = QtGui.QWidget()
timeSlider = QtGui.QSlider(QtCore.Qt.Horizontal, self)
CentralWidgetLayout = QtGui.QHBoxLayout()
VBox = QtGui.QVBoxLayout()
CentralWidgetLayout.addWidget(timeSlider)
VBox.addLayout(CentralWidgetLayout)
CentralWidget.setLayout(VBox)
window.setCentralWidget(CentralWidget)
timeSlider.setValue(0)
window.show()
self.runTimer()
def runTimer(self):
timer = QtCore.QTimer()
timer.timeout.connect(self.updateTime)
timer.start(1000)
def updateTime(self):
global CurrentTime
CurrentTime = CurrentTime + 1
print("Current Timer = ", CurrentTime)
def main():
app = QtGui.QApplication(sys.argv)
win = widgetWindow()
win.show()
win.resize(800,450)
sys.exit(app.exec_())
if __name__ == '__main__':
main()
答案 0 :(得分:0)
这里有两个问题
1)
在main
功能中,
win.show()
是多余的。删除它,您将看到QMainWindow
对象
2)
您没有持有对计时器对象的引用。
将runTimer
更改为此值,它应该可以正常工作
def runTimer(self):
self.timer = QtCore.QTimer()
self.timer.timeout.connect(self.updateTime)
self.timer.start(1000)