[英]PyQt, trying to make LCD qt widget countdown
我有一個項目正在做,我必須對電梯“模擬器”進行編程。 我第一次使用 python 和 pyqt 並且遇到了一些困難。 目前我有 2 個課程,一個是電梯 class,另一個是具有 QLCDNumber 小部件的 liftUI class。 我設置了電梯 class 以將當前樓層和目標樓層號發送到 liftUI class 所以我想我可以使用一個while循環來改變液晶顯示器的值,直到當前樓層和目標樓層相同,但它只是凍結,我必須強制關閉。
這是我目前擁有的代碼:
def lcdFloorNum(self, floorNum, curFloor):
if floorNum <= curFloor:
while floorNum <= curFloor:
self.ui.floorNumber.setProperty("value", floorNum)
floorNum -= 1
這僅適用於當電梯明顯下降時,一旦它工作,我會“上升”......它從電梯 class 中的另一個 function 獲取 floorNum 和 curFloor ,我很確定它工作正常。 如果我擺脫了 while 循環,它會更新數字,只更新一次,直到最后。 有沒有更好的代碼來實現我想要的不會凍結 GUI 的東西?
我想你想減少curFloor
不是嗎? 您的 while 語句是while floorNum <= curFloor:
。 如果您減少floorNum
,則該語句將始終為真。
除了此處提到的其他問題之外,您的代碼正在更改 UI 中顯示的數字,而步驟之間沒有任何時間(實際上不允許 GUI 更新),因此它會“倒計時”如此之快,以至於您看不到它。
更好的方法可能是使用 QTimer 以便您可以模擬,例如每秒下一層樓或類似情況。 看看 QTimer 和信號/槽機制。 我在這里找到了一個小的 PyQT 示例: http://www.rkblog.rk.edu.pl/w/p/qtimer-making-timers-pyqt4/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.