エレベーター「シミュレーター」をプログラムする必要があるプロジェクトに取り組んでいます。初めて python と pyqt を使用していますが、問題があります。現時点では、2 つのクラスがあります。1 つはエレベーター クラス、もう 1 つは QLCDNumber ウィジェットを持つ liftUI クラスです。現在のフロアと目的のフロア番号をliftUIクラスに送信するようにエレベータクラスを設定しているので、whileループを使用して、現在のフロアと目的のフロアが同じになるまでlcd値を変更できると考えましたが、フリーズし、強制的に閉じる必要があります。
これが私が現時点で持っているコードです:
def lcdFloorNum(self, floorNum, curFloor):
if floorNum <= curFloor:
while floorNum <= curFloor:
self.ui.floorNumber.setProperty("value", floorNum)
floorNum -= 1
これは、エレベーターが明らかに下降している場合にのみ使用します。これが機能したら、「上昇」します...エレベーター クラスの別の関数から floorNum と curFloor を取得します。while ループを取り除くと、最後までではなく、1 回だけ数値が更新されます。GUIをフリーズさせない、私が望むものを達成するためのより良いコードはありますか?