[英]Communicate from Main Application Thread to Seperate QThread
我有這個基本的應用程序。 它創建一個新線程並啟動它。 然后,它使用信號將其傳遞回主線程以進行其他操作。
我的問題是如何將數據從主線程傳遞到創建的新線程,這部分對我來說真的沒有意義。 還是有另一種方式來回穿線。 本質上,主線程和新線程將在應用程序的整個生命周期內運行,因此它們需要來回通信。
注意,我是一名Web開發人員,因此原生應用對我來說是新的。 另外我還是qt
和pyqt
新手,所以不確定如何執行此操作。
import sys
from PyQt4 import QtGui
from PyQt4.QtCore import QThread, pyqtSignal
class Thread(QThread):
message_recieved = pyqtSignal(object)
def run(self):
self.message_recieved.emit('hello')
class Main(QtGui.QMainWindow):
def __init__(self, parent = None):
QtGui.QMainWindow.__init__(self,parent)
self.initUI()
self.thread = Thread()
self.thread.message_recieved.connect(self.message)
self.thread.start()
def message(self, msg):
print msg
def initUI(self):
self.setGeometry(100, 100, 800, 600)
self.setWindowTitle("Test App")
def main():
app = QtGui.QApplication(sys.argv)
main = Main()
main.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
您不應該QThread
。 您應該在創建的線程上發送一個工作線程。 查看此鏈接以獲得有關Qt中線程的最佳實踐: http : //mayaposch.wordpress.com/2011/11/01/how-to-really-truly-use-qthreads-the-full-explanation/示例使用C ++,但可以輕松轉換為Python。 祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.