作者:pacer猫处 | 来源:互联网 | 2023-09-15 20:25
因此,我正在制作用于控制激光器的GUI,并且代码如下:
for i in Channels:
ui.Status_messagebox.append('Connect channel {}'.format(i.channel_id))
# [add something here so the code waits until I'm done connecting channel i]
i.FUN1
位置:
-
ui.Status_messagebox
是QTextBrowser
- 渠道是一个包含类类型项的数组(每个类都包含
激光的通道ID和其他一些功能[FUN1 ... FUNk])
正如您在代码上看到的那样,我希望代码等待触发器启动功能FUN1
因为我不想使用time.sleep(30)
,所以我尝试了:
for i in Channels:
ui.Status_messagebox.append('Connect channel {}'.format(i.channel_id))
ui.OK.clicked.connect(i.FUN1)
其中ui.OK
是一个QPushButton
它不起作用:单击ui.OK
后,代码遍历所有通道并执行FUN1,而不允许我连接通道2,依此类推。
然后我尝试了这个:
for i in Channels:
ui.Status_messagebox.append('Connect channel {}'.format(i.channel_id))
ui.OK.setCheckable(True)
ui.OK.setChecked(False)
while True:
if ui.OK.isChecked()==False:
time.sleep(0.1)
else:
i.FUN1
ui.OK.setChecked(False)
break
在这里,Spyder只是被窃听了……并重新启动了内核。
注意:每当我放置与QPushButton相关的while循环时,Spyder似乎都不喜欢它,它只是重新启动了内核
所以,我的想法不多了,希望在这里找到帮助
非常感谢