0
좋아,이 글은 이전 게시물의 편집 된 버전입니다. 집 창문에 디지털 시계를 놓으려고합니다. 값을 업데이트하는 데 어려움이 있습니다. 나는 다른 클래스에서 @pyqtSlot() 메소드를 호출하는 튜토리얼 1을 보았지만 메인 윈도우 클래스에서 작업 중이기 때문에 호출 할 수 없었고 시계가 전혀 나타나지 않았습니다. 아래 다음 코드는 현재 시간을 제공하지만 시계가 업데이트되지 않습니다 :PyQt4의 디지털 시계 위젯 업데이트 문제 - 슬롯 및 신호 호출
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()
귀하의 솔루션은 완전히 정확합니다. 분명히 "해결 방법"이라고 설명하지는 않습니다. 이것이 (원래 예제와 비교하여) 작동하는 이유는'lcd'와'timer'에 대한 참조를 유지하기 때문입니다. 구식 신호 및 슬롯 연결 (매우 오류가 발생할 수 있음)을 피한 것도 좋습니다. – ekhumoro
@ekhumoro 귀하의 의견에 감사드립니다.이 접근법은 내가 요구했던 것보다 훨씬 직관적 인 것처럼 보입니다. – alkey