Python论坛  - 讨论区

标题:[python-chinese] PyQt中的GUI同步问题

2007年02月15日 星期四 16:54

俊杰蔡 yzcaijunjie在gmail.com
星期四 二月 15 16:54:13 HKT 2007

ÔÚPyQTÖУ¬ÓÐһЩQlabelÉÏÏÔʾµÄÄÚÈÝÐèÒªÔÚ´úÂëÖпØÖÆÊä³ö

self.textLabel1.setText(u"ÏÂÔØ")

ÓÉÓÚ´úÂëÔÚÖ´Ðе½ÕâÀïµÄʱºò£¬»¹Òª¼ÌÐøÔËÐУ¬GUIÉÏÍùÍù²»ÄÜͬ²½¸Ä±ä£¬ÒªµÈÕû¸ö¹ý³Ì¶¼´¦Àí½áÊøÒÔºó²ÅÄÜÔÚGUIÉÏÏÔʾ¸Ä±äµÄÄÚÈÝ"ÏÂÔØ"

ÇëÎÊÕâÀàÎÊÌ⣬ÔÚpyqtÖиÃÈçºÎ½â¾öÄØ£¿
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070215/7abfc002/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年02月15日 星期四 19:00

Andelf andelf在gmail.com
星期四 二月 15 19:00:26 HKT 2007

在07-2-15,俊杰蔡 <yzcaijunjie at gmail.com> 写道:
>
> 在PyQT中,有一些Qlabel上显示的内容需要在代码中控制输出
>
> self.textLabel1.setText(u"下载")
>
> 由于代码在执行到这里的时候,还要继续运行,GUI上往往不能同步改变,要等整个过程都处理结束以后才能在GUI上显示改变的内容"下载"
>
> 请问这类问题,在pyqt中该如何解决呢?


没怎么看明白 repaint() 行不?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070215/564ca0c7/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年02月15日 星期四 20:34

俊杰蔡 yzcaijunjie在gmail.com
星期四 二月 15 20:34:41 HKT 2007

ÎÒ»»¸ö·½·¨½âÊÍÏ£¬ÎÒ²»ÖªµÀʹÓÃPyQTÀ´¿ª·¢Í¼ÐÎÊDz»ÊÇÒªÒª¿¼ÂÇһЩ¶àÏ̡߳£ÎÒǰ̨µÄµÄGUIÖеÄwidgetÈçtextlabelÄÚÈݵÄÏÔʾ£¬ÊÇÓɺǫ́º¯Êý´¦Àíºó·µ»ØµÄ£¬È»¶ø£¬ºǫ́ºǫ́µÄº¯ÊýÍùÍùÔËÐбȽϳ¤£¬Ç°Ì¨GUI¾Í»ù±¾Éϲ»»áÓÐʲôÏìÓ¦£¬ÎÒÏëÎʵÄÊÇ£¬ÓÐûÓÐʲô°ì·¨Äܽâ¾öÕâÑùµÄÎÊÌâÄØ£¿

ÔÚ07-2-15£¬Andelf <andelf在gmail.com> дµÀ£º
>
>
>
> ÔÚ07-2-15£¬¿¡½Ü²Ì <yzcaijunjie在gmail.com> дµÀ£º
> >
> > ÔÚPyQTÖУ¬ÓÐһЩQlabelÉÏÏÔʾµÄÄÚÈÝÐèÒªÔÚ´úÂëÖпØÖÆÊä³ö
> >
> > self.textLabel1.setText(u"ÏÂÔØ")
> >
> > ÓÉÓÚ´úÂëÔÚÖ´Ðе½ÕâÀïµÄʱºò£¬»¹Òª¼ÌÐøÔËÐУ¬GUIÉÏÍùÍù²»ÄÜͬ²½¸Ä±ä£¬ÒªµÈÕû¸ö¹ý³Ì¶¼´¦Àí½áÊøÒÔºó²ÅÄÜÔÚGUIÉÏÏÔʾ¸Ä±äµÄÄÚÈÝ"ÏÂÔØ"
> >
> > ÇëÎÊÕâÀàÎÊÌ⣬ÔÚpyqtÖиÃÈçºÎ½â¾öÄØ£¿
>
>
> ûÔõô¿´Ã÷°× repaint() Ðв»?
>
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070215/34fee80e/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年02月15日 星期四 21:45

Andelf andelf在gmail.com
星期四 二月 15 21:45:35 HKT 2007

在07-2-15,俊杰蔡 <yzcaijunjie at gmail.com> 写道:
>
>
> 我换个方法解释下,我不知道使用PyQT来开发图形是不是要要考虑一些多线程。我前台的的GUI中的widget如textlabel内容的显示,是由后台函数处理后返回的,然而,后台后台的函数往往运行比较长,前台GUI就基本上不会有什么响应,我想问的是,有没有什么办法能解决这样的问题呢?


线程呀~ Demo里边那个不是挺好的,当后台需要较长时间处理的时候就用线程
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070215/d4ae2277/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2007年02月28日 星期三 17:40

Leira Hua lhua在altigen.com.cn
星期三 二月 28 17:40:53 HKT 2007



没有细看过PyQt,不过原先作的是Qt的C++开发,由一些想法,希望指正。
对于类似情况,大多数GUI Framework都有比较常规的处理方法。一种是多线程,这会 
带来结构上的复杂度。还有一种,如果是比较简单的大量循环方式的处理的话,可以 
只用单线程,简单的在循环的间隙调用系统的事件处理函数,处理已经堆在消息队列 
中的消息就可以了。Qt/PyQt中的QApplication.processEvents()函数就是做这个工作 
的,你只要在每个循环的间隙调用这个函数就可以了。

On Thu, 15 Feb 2007 21:45:35 +0800, Andelf  
<andelf-Re5JQEeQqe8AvxtiuMwx3w at public.gmane.org> wrote:

> 在07-2-15,俊杰蔡 <yzcaijunjie at gmail.com> 写道:
>>
>>
>> 我换个方法解释下,我不知道使用PyQT来开发图形是不是要要考虑一些多线程。我 
>> 前台的的GUI中的widget如textlabel内容的显示,是由后台函数处理后返回的,然 
>> 而,后台后台的函数往往运行比较长,前台GUI就基本上不会有什么响应,我想问 
>> 的是,有没有什么办法能解决这样的问题呢?
>
>
> 线程呀~ Demo里边那个不是挺好的,当后台需要较长时间处理的时候就用线程



-- 
Leira Hua
http://my.opera.com/Leira



[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号