首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python pyqt4 print 到 GUI的文本框有关问题

2014-01-06 
python pyqt4 print 到 GUI的文本框问题谁做过图形界面,我想把print到控制台的信息输入到QTextBrowser怎么

python pyqt4 print 到 GUI的文本框问题
谁做过图形界面,我想把print到控制台的信息输入到QTextBrowser怎么办呢?其实可以输出了,就是我已经封装好的代码里面输出语句怎么输出到QTextBrowser?
我尝试过把输出函数写在UI生成的py文件里,但是在其他py文件里不能调用,提示说没有那个方法!
python pyqt4 print 到 GUI的文本框有关问题
[解决办法]

引用:
Quote: 引用:

看你的错误信息,你是用Ui_dialog.textBrowser()调用的?
Ui_dialog是你用Designer创建的界面类吧?
是的啊,为什么我在其他py文件里不能调用textBrowser,又怎么实现这种调用,如果实现不了,怎么解决这个问题呢,我要在我写好的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

热点排行