好的,这是我上一篇文章的编辑版本。我正在尝试将数字时钟放在主窗口上。我无法更新价值。我看到一个教程1在另一个类中使用@pyqtSlot()调用了一个方法,但由于我在主窗口类中工作,我无法调用它,并且时钟根本没有出现。下面的代码显示当前时间,但时钟未更新:
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.setGeometry(50,50,500,300)
self.home()
def home(self):
lcdNumber = QLCDNumber(self)
timer = QTimer()
lcdNumber.setDigitCount(8)
self.showTime(lcdNumber)
lcdNumber.connect(timer,SIGNAL("timeout()"),lcdNumber,SLOT("showTime()"))
timer.start(1000)
self.show()
@pyqtSlot()
def showTime(self,lcdNumber):
lcdNumber.display(QTime.currentTime().toString("hh:mm:ss"))
def run():
app=QApplication(sys.argv)
GUI = Window()
sys.exit(app.exec_())
run()
答案 0 :(得分:1)
好的,所以我找到了一些使用我发现here的代码的工作,但我仍然不确定如何使信号和插槽功能正常运行。
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys
from time import strftime
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.setGeometry(50,50,700,300)
self.home()
def home(self):
self.timer =QTimer(self)
self.timer.timeout.connect(self.Time)
self.timer.start(1000)
self.lcd = QLCDNumber(self)
self.lcd.display(strftime("%H"+":"+"%M"+":"+"%S"))
self.lcd.setDigitCount(8)
self.show()
def Time(self):
self.lcd.display(strftime("%H"+":"+"%M"+":"+"%S"))
def run():
app=QApplication(sys.argv)
GUI = Window()
sys.exit(app.exec_())
run()