2010-08-23 49 views
1

Pyqt中是否有类似的PyOnDemandOutputWindow函数? 此功能将控制台输出重定向到单独的窗口。Wxwidgets和Pyqt

回答

4

可以用包装器代替sys.std[out|err],该包装器将所有输出写入例如一个QPlainTextEdit。一个很简单的例子:

class StdoutWrapper(object): 
    def __init__(self, outwidget): 
     self.widget = outwidget 
     self.widget.setReadOnly(True) # assuming QPlainTextEdit 
     self.widget.hide() 

    def write(self, s): 
     self.widget.show() 
     self.widget.appendPlainText(s) # again assuming QPlainTextEdit 

而且别的地方:

import sys 

sys.stdout = StdoutWrapper(yourwidget) 
# similar for stderr, but you might want an error dialog or make 
# the text stand out using appendHtml