【发布时间】:2019-10-05 04:59:07
【问题描述】:
我是 python 新手,我正在尝试学习 simpy 和 pyqt5。我正在制作一些程序,我想在每次迭代时更改标签颜色,但我不知道为什么它只显示一种颜色。
首先要更改颜色,我先提到绿色,然后是黑色,但启动程序后它只显示黑色。有什么办法可以连续改变颜色。
def carParking(env, name, ps, depart_time, parking_Duration):
yield env.timeout(depart_time)
print("Car %d arrived on station at %d" % (name, env.now))
app.processEvents()
dlg.parkedCars.display(name)
app.processEvents()
dlg.lEnter.setStyleSheet('color: Green')
dlg.lEnter.setStyleSheet('color: Black')
dlg.lEnter.setStyleSheet('color: Green')
time.sleep(0.30)
with ps.request() as req:
yield req
time.sleep(0.30)
print("%d parked at %s" % (name, env.now))
yield env.timeout(parking_Duration)
time.sleep(0.30)
print("%d leaving the Parking Station at %s" % (name, env.now))
dlg.lExit.setStyleSheet('color: Red')
在上面的代码中,您可以看到绿色黑色绿色,但它不是那样工作的。它只显示一种颜色,即绿色。 剩下的代码在下面给出
env = simpy.Environment()
ps = simpy.Resource(env, capacity=5)
def syslot(self):
#a=dlg.parkingSpace.setText(str(float(dlg.nCars.text())))
ab=int(dlg.nCars.text())
for i in range(ab):
a = randint(1, 5)
# dlg.lEnter.setStyleSheet('color: black')
# dlg.lExit.setStyleSheet('color: black')
env.process(carParking(env, i, ps, i * 2, a))
time.sleep(0.10)
print("The parking duration of Car %d is %d" % (i, a))
env.run()
app =QtWidgets.QApplication([])
dlg = uic.loadUi("design.ui")
dlg.visualize.clicked.connect(syslot)
dlg.show()
sys.exit(app.exec_())
请告诉我应该怎么做才能连续更改标签颜色。提前谢谢你。
【问题讨论】:
-
虽然你有很多错误,例如在程序运行时尝试改变窗口大小你会看到你的窗口冻结,我看到另一个你没有意识到的错误:我们的眼睛很慢,所以最后几个 us / ms 的变化我们不会观察到它,在你的情况下,3 个连续的命令将在这些单位时间内,所以没有观察到从绿色-黑色-绿色的颜色变化。你觉得我指的是什么?
-
@eyllanesc 谢谢你的评论。你能在这方面指导我吗?
-
我有一个问题:你想要的颜色变化是G-B-G,每个颜色应该显示多长时间?
-
一段时间。实际上这个程序是可视化停车场。所以要想象任何一辆车是否进入公园,我想改变标签颜色。例如。如果汽车进入它应该变成绿色然后回到原来的黑色。如果汽车要离开,那么它应该变成红色并变回默认颜色,就像这样。
-
问题是选择时间。根据您的指示,我了解到有两个重要的时间T1:进入时间和T2:离开时间。在你的程序中,哪个命令行相当于“进入时间”和“离开时间”?同时分享.ui
标签: python python-3.x pyqt5 simpy