私は非常に基本的なPyQtを行っていますので、最適化が不十分で、クラスの向きが不足しているとお考えください。LCDディスプレイは入力を更新したくない(表示するように表示していない)
ImはPyQtでタイマーを作ろうとしています。私はこれらの機能をUIに3つのLCDのを、時間のLCD(hourLcd)、分LCD(minuteLcd)と第二LCD(secondLcd)
import sys
import time
from PyQt4 import QtGui
from PyQt4 import uic
app = QtGui.QApplication(sys.argv)
#window = QtGui.QMainWindow()
ui = uic.loadUi("clock.ui")
#ui.setupUi(Window)
ui.show()
これは設定PyQt4
def hourUp():
count = ui.hourLcd.value()
if count < 24:
count = count + 1
ui.hourLcd.display(count)
def hourDown():
count = ui.hourLcd.value()
if count > 0:
count = count - 1
ui.hourLcd.display(count)
def minuteUp():
count = ui.minuteLcd.value()
if count < 59:
count = count + 1
ui.minuteLcd.display(count)
def minuteDown():
count = ui.minuteLcd.value()
if count > 0:
count = count - 1
ui.minuteLcd.display(count)
def secondUp():
count = ui.secondLcd.value()
if count < 59:
count = count + 1
ui.secondLcd.display(count)
def secondDown():
count = ui.secondLcd.value()
if count > 0:
count = count - 1
ui.secondLcd.display(count)
をしているしていますUIボタンをアクションに接続するためのものです。例えばUI上のボタンを押すと、カウンタに1を加えます。
def start(stop):
loop = False
secondcounter = ui.secondLcd.value()
minutecounter = ui.minuteLcd.value()
hourcounter = ui.hourLcd.value()
while loop == False:
time.sleep(1)
secondcounter = secondcounter - 1
print(secondcounter)
ui.secondLcd.display(secondcounter) ****
if secondcounter == 0:
if minutecounter != 0:
minutecounter = minutecounter - 1
print(minutecounter)
ui.minuteLcd.display(minutecounter) ****
secondcounter = secondcounter + 59
ui.secondLcd.display(secondcounter) ****
if secondcounter == 0:
if minutecounter == 0:
if hourcounter == 0:
loop = True
if minutecounter == 0:
if secondcounter == 0:
if hourcounter != 0:
hourcounter = hourcounter - 1
print(hourcounter)
ui.hourLcd.display(hourcounter) ****
minutecounter = minutecounter + 59
print(minutecounter)
ui.minuteLcd.display(minutecounter) ****
secondcounter = secondcounter + 59
print(secondcounter)
ui.secondLcd.display(secondcounter) ****
else:
continue
タイマーを動作させるためのアルゴリズムです。
基本的に、コードはすべて完全に動作します。それは与えられた任意の時間から0までカウントダウンしますが、私はコードのプリントアウトをUI、特にそれらの隣の星のラインにリンクするのに問題があります。 他の機能で動作するように、カウンターが変更されたときにコードがLCD桁を更新することを拒否している理由(例:counter = counter - 1)がわからない。
ありがとうございます!