當前位置:編程學習大全網 - 編程軟體 - python ,pyqt4,如何將print出來的內容輸出到界面上的文本框中?

python ,pyqt4,如何將print出來的內容輸出到界面上的文本框中?

from?PyQt4?import?QtGui,QtCore

import?threading,time

class?sy(QtGui.QWidget):

txt_signal?=?QtCore.pyqtSignal(str)

def?__init__(self,parent=None):

self.app=QtGui.QApplication([])

super(sy,self).__init__(parent)

self.txt=QtGui.QTextEdit()

lay=QtGui.QVBoxLayout()

self.txt_signal.connect(self.writetoTextbox)?

lay.addWidget(self.txt)

self.setLayout(lay)

def?main(self):

self.show()

self.app.exec_()

def?write(self,s):

self.txt_signal.emit(s)

@QtCore.pyqtSlot(str)?

def?writetoTextbox(self,text):?

self.txt.append(text)

def?PrintSomething(stream):

time.sleep(3)

print('hello?world',file=stream,end="Yes,it's?a?test!")

if?__name__=='__main__':

s=sy()

t=threading.Thread(target=PrintSomething,args=(s,))

t.start()

s.main() 要點:

壹、print(value, ..., sep=' ', end='\n', file=sys.stdout):

file參數決定輸出內容要輸出到哪裏,任何擁有write(self,s)方法的對象都可以充作此參數

value參數的字符串表示將被作為壹次輸出,定向到file對象

end參數將被作為第二次輸出,定向到file對象

二、PyQt繪制出的GUI界面用常規方法是無法從後臺線程訪問界面上的控件的,所以這裏就另外定義了壹個pyqtSignal,在後臺線程調用write方法時在write方法中引發此信號的事件。

  • 上一篇:刀尖圓弧半徑補償問題
  • 下一篇:如何用cdr制作透明高腳杯
  • copyright 2024編程學習大全網