python pyqt4 print 到 GUI的文本框有关问题
python pyqt4 print 到 GUI的文本框问题谁做过图形界面,我想把print到控制台的信息输入到QTextBrowser怎么
python pyqt4 print 到 GUI的文本框问题
谁做过图形界面,我想把print到控制台的信息输入到QTextBrowser怎么办呢?其实可以输出了,就是我已经封装好的代码里面输出语句怎么输出到QTextBrowser?
我尝试过把输出函数写在UI生成的py文件里,但是在其他py文件里不能调用,提示说没有那个方法!
[解决办法]
你要用UI,UI就是你脚本的主要部分了。把你写好的脚本代码修改添加到Ui_Dialog.py中
你可能还要用到多线程,因为你控制台输出的信息是不断刷新的,你要监视并读出控制台的输出信息,界面会卡住无法操作,因为是单线程。
[解决办法]这个很简单啊。可以用多线程。
首先实现一个类,必须要有write函数,在write函数,你可以调用textBrowser.appendtext之类的方法
class browser(object):
def write(_str):
textbrowser.appendtext(_str)
cout=browser()
sys.stdout=cout
我这里还有多线程实现的版本,要多4行代码,我就不写了。
[解决办法]在主线程中(Gui), 调用8#的类这两句
cout=browser()
sys.stdout=cout
不过里面的textBrowser控件要改成你Qt设计师里定义的对象名字,比如self.textBrowserText