進口?穿線,時間
班級?sy(Qt GUI。QWidget):
txt_signal?=?Qt core . pyqtsignal(str)
def?_ _ init _ _(self,parent=None):
self.app=QtGui。應用程序(【】)
超級(sy,self)。__init__(父級)
self.txt=QtGui。QTextEdit()
lay=QtGui。QVBoxLayout()
self . txt _ signal . connect(self . writetotextbox)?
lay . add widget(self . txt)
self . set布局(lay)
def?主要(自身):
self.show()
self.app.exec_()
def?寫(自己,s):
self.txt_signal.emit
@ Qt core . pyqtslot(str)
def?writetoTextbox(self,text):
self.txt.append(文本)
def?PrintSomething(流):
時間。睡眠(3)
打印(‘餵?world,file=stream,end=“是的,是?答?測試!”)
如果?_ _ name _ _ = =‘_ _ main _ _‘:
s=sy()
t =線程。線程(target=PrintSomething,args =(s,))
開始()
S.main()點:
I。打印(值,...,sep =‘‘,end =‘\ n‘,file = sys.stdout):
file參數確定輸出內容的輸出位置,任何具有write(self,s)方法的對象都可以用作該參數。
value參數的字符串表示形式將作為主要輸出指向file對象。
end參數將作為第二個輸出指向file對象。
其次,PyQt繪制的GUI界面無法通過常規方法從後臺線程訪問界面上的控件,因此這裏我們定義了另壹個pyqtSignal,當後臺線程調用write方法時,它將在write方法中觸發此信號的事件。