我是新來的python和我的項目我已經完成了一個實現從微控制器獲取數據(通過UART採樣數據到我的電腦)的函數。Python:如何檢測函數完成並重新啓用按鈕?
這需要幾秒鐘,這取決於我希望收集多少個樣本。這與直接的Python腳本工作正常。
但是,我希望實現一個GUI,我選擇PyQt來做到這一點。我想要做的就是在按下按鈕時調用該函數。
我將試圖解釋我想在下面的順序步驟來實現的:
- 點擊按鈕。
- 按鈕被禁用。
- 調用函數collectDataFromUART()。
- 等待/檢測數據收集完成(幾秒)
- 重新啓用按鈕。
我有一個按鈕clicked
處理程序,如下圖所示:
self.ui.pushButton1.clicked.connect(self.handlepushButton1)
def handlepushButton1(self):
self.ui.textEdit1.append("Started")
collectDataFromUART()
我無法理解的是如何檢測功能collectDataFromUART(完成),然後才重新啓用按鈕。
任何人都可以對此有所瞭解嗎?例子會非常有幫助。
幫助!謝謝。
添加這個作爲評論而不是回答,因爲我不熟悉這些庫或這種使用python。但是你可以添加一個變量?在函數的開始處有'running = true',最後是'running = false'。然後依靠這個變量使得按下按鈕的能力。 (這顯然不是正確的代碼,但更像是僞代碼來幫助解釋)'while running == true:clickable == false else:clickable == true' – 2014-09-03 09:28:47
爲什麼不在'handlepushButton1'中放置另一行來重新啓用按鈕?此行將在'collectDataFromUART'返回時運行。 – jonrsharpe 2014-09-03 09:31:02
最Qt的做法是通過一個信號(將數據集合包裝在派生自QObject的類中,定義信號,在數據採集結束時發出信號,將gui連接到信號並做任何你想做的事情)。 – Trilarion 2014-09-04 09:01:51