我无法绕过在我的PyQt界面应用中使用raspberry pi的线程中运行的wait_for_edge()
所以要运行界面我使用以下代码
class initUI:
global t
def __init__(self):
global t
global MainWindow
self.gui = ui7.Ui_MainWindow()
self.gui.setupUi(MainWindow)
self.gui.botaocancelar.clicked.connect(self.accaoCancelar)
t = threading.Thread(target= self.principal)
t.daemon = True
t.start()
我必须创建一个线程,以便显示视图并继续执行程序
之后目标函数开始工作,代码为:
def principal(self):
while count < int(quantidadeDoArtigo):
GPIO.wait_for_edge(9, GPIO.FALLING )
每当它调用的函数被卡住等待pi 9连接时,如果程序正在运行,这是正确的,但我在界面上有一个按钮来关闭程序(accaoCancelar)。
我的问题是当我点击该按钮时,程序被冻结,因为wait_for_edge阻止了我的while循环,这个循环无法被破坏,应用程序将关闭。
有任何帮助吗?