2014-10-01 79 views
0

我想在python中使用pyqt4製作一個圖形用戶界面,其中包含與USRP連接的瀑布式水槽。問題在於數據應該連續顯示在瀑布下沉中,這會導致GUI凍結,同時我不能使用其他按鈕。我正在檢查使用線程,但直到現在我所理解的是,在線程中,我可以只放置函數,它會在最後給出結果,而不是連續給出結果的函數,我希望在主GUI中看到它。與python pyqt一起使用線程?

任何想法如何使從瀑布水槽看到的連續結果成爲可能,而不是凍結主GUI。

+0

瀑布水槽?你能詳細說明一下嗎?我假設你並不是說你想要在其中一個顯示你的數據:https://www.google.com.au/search?q=waterfall+sink&tbm=isch – 2014-10-01 12:32:11

+0

你可以使用信號和插槽機制來持續更新來自其他線程的GUI而不阻塞主線程。 – Fenikso 2014-10-01 16:43:33

+0

本示例可能會給您一些建議:http://stackoverflow.com/a/25723995/674475 – Fenikso 2014-10-01 16:45:11

回答

0

有幾種方法可以做到這一點,但基本上無論是

  1. 破碎的瀑布沉入工作的塊,圖形用戶界面能夠定期執行。例如,不是不斷更新GUI調用的函數中的瀑布接收器,而只是進行「短」更新(一個「時間步長」),並且在該函數之後立即返回;通過QTimer定期調用函數。
  2. 通過使用在QThread實例中實例化的QObject使瀑布水槽在單獨的線程中執行;並使sink函數以固定的時間間隔發出信號,例如在瀑布更新的每個「時間步長」處。