对于我的实际项目,我必须围绕我的代码构建一个GUI。不久说: 我通过串行输入使用氧气表。如果(当然)串行端口打开并且发送命令“O”,则数据串仅由Oxymeter发送。因此,对于连续测量,必须始终发送命令(以time.sleep(x秒)的形式短暂中断)。 BTW:没有围绕它的GUI一切都很好...... 在Qt Designer中,我制作了两个按钮: 1.按钮:应该连续发送命令 2.按钮:应该停止循环 这里有一段代码摘录:
def setupUI(self, DataColOpt):
......
self.Messungstarten = QtGui.QPushButton(self.Datenerfassung)
self.Messungstarten.setObjectName(_fromUtf8("Messungstarten"))
self.Messungstarten.clicked.connect(self.messung_starten)
def messung_starten(self):
while ser1.isOpen():
ser1.write("O")
time.sleep(1)
print "it's working!"
self.Messungbeenden = QtGui.QPushButton(self.Datenerfassung)
self.Messungbeenden.setObjectName(_fromUtf8("Messungbeenden"))
self.Messungbeenden.clicked.connect(self.messung_beenden)
def messung_beenden(self):
ser1.close()
print "Ende"
如果我这样做,点击“开始按钮”收集数据,但是一旦我尝试点击窗口内的任何地方(例如停止按钮或“X”关闭),应用程序就会冻结但循环继续。 如果我用“if”替换“while”我可以单击其他按钮,但数据串只发送一次。 我希望我明确指出我的问题(除了事实,我在2个月前开始编码)。任何建议和帮助都是非常感谢,感谢您的时间:)