Python论坛  - 讨论区

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

2007年03月01日 星期四 08:50

Marco marco在waven.com
星期四 三月 1 08:50:28 HKT 2007

你的意思是在"后台函数"里插入QApplication.processEvents() ?

On 2/28/07, Leira Hua <lhua在altigen.com.cn> wrote:
> 没有细看过PyQt,不过原先作的是Qt的C++开发,由一些想法,希望指正。
> 对于类似情况,大多数GUI Framework都有比较常规的处理方法。一种是多线程,这会
> 带来结构上的复杂度。还有一种,如果是比较简单的大量循环方式的处理的话,可以
> 只用单线程,简单的在循环的间隙调用系统的事件处理函数,处理已经堆在消息队列
> 中的消息就可以了。Qt/PyQt中的QApplication.processEvents()函数就是做这个工作
> 的,你只要在每个循环的间隙调用这个函数就可以了。
>
> On Thu, 15 Feb 2007 21:45:35 +0800, Andelf
> <andelf在gmail.com> wrote:
>
> > 在07-2-15,俊杰蔡 <yzcaijunjie在gmail.com> 写道:
> >>
> >>
> >> 我换个方法解释下,我不知道使用PyQT来开发图形是不是要要考虑一些多线程。我
> >> 前台的的GUI中的widget如textlabel内容的显示,是由后台函数处理后返回的,然
> >> 而,后台后台的函数往往运行比较长,前台GUI就基本上不会有什么响应,我想问
> >> 的是,有没有什么办法能解决这样的问题呢?
> >
> >
> > 线程呀~ Demo里边那个不是挺好的,当后台需要较长时间处理的时候就用线程
>
>
>
> --
> Leira Hua
> http://my.opera.com/Leira
>
> _______________________________________________
> 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


-- 
LinuX Power

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

2007年03月01日 星期四 11:00

Leira Hua lhua在altigen.com.cn
星期四 三月 1 11:00:41 HKT 2007


是的。当然,这里的Qapplication应该替换成你能引用到的Qapplication对象,Qt当 
中是有全局能引用的qApp的,我想PyQt里面应该也有类似的全局变量。而 
且,processEvents()要调用的足够频繁,才能使界面保持响应。

你试一下就知道了~

On Thu, 01 Mar 2007 08:50:28 +0800, Marco  
<marco-wTijmzlzVKIAvxtiuMwx3w at public.gmane.org> wrote:

> 你的意思是在"后台函数"里插入QApplication.processEvents() ?
>
> On 2/28/07, Leira Hua <lhua at altigen.com.cn> wrote:
>> 没有细看过PyQt,不过原先作的是Qt的C++开发,由一些想法,希望指正。
>> 对于类似情况,大多数GUI Framework都有比较常规的处理方法。一种是多线程, 
>> 这会
>> 带来结构上的复杂度。还有一种,如果是比较简单的大量循环方式的处理的话,可 
>>>> 只用单线程,简单的在循环的间隙调用系统的事件处理函数,处理已经堆在消息队 
>>>> 中的消息就可以了。Qt/PyQt中的QApplication.processEvents()函数就是做这个 
>> 工作
>> 的,你只要在每个循环的间隙调用这个函数就可以了。
>>
>> On Thu, 15 Feb 2007 21:45:35 +0800, Andelf
>> <andelf at gmail.com> wrote:
>>
>> > 在07-2-15,俊杰蔡 <yzcaijunjie at gmail.com> 写道:
>> >>
>> >>
>> >> 我换个方法解释下,我不知道使用PyQT来开发图形是不是要要考虑一些多线 
>> 程。我
>> >> 前台的的GUI中的widget如textlabel内容的显示,是由后台函数处理后返回 
>> 的,然
>> >> 而,后台后台的函数往往运行比较长,前台GUI就基本上不会有什么响应,我想 
>>>> >> 的是,有没有什么办法能解决这样的问题呢?
>> >
>> >
>> > 线程呀~ Demo里边那个不是挺好的,当后台需要较长时间处理的时候就用线程
>>
>>
>>
>> --
>> Leira Hua
>> http://my.opera.com/Leira
>>
>> _______________________________________________
>> python-chinese
>> Post: send python-chinese at lists.python.cn
>> Subscribe: send subscribe to python-chinese-request at lists.python.cn
>> Unsubscribe: send unsubscribe to  python-chinese-request at lists.python.cn
>> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>



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


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

2007年03月01日 星期四 14:03

Marco marco在waven.com
星期四 三月 1 14:03:43 HKT 2007

8错!! 学习了!!! 谢谢 !!!!

On 3/1/07, Leira Hua <lhua在altigen.com.cn> wrote:
> 是的。当然,这里的Qapplication应该替换成你能引用到的Qapplication对象,Qt当
> 中是有全局能引用的qApp的,我想PyQt里面应该也有类似的全局变量。而
> 且,processEvents()要调用的足够频繁,才能使界面保持响应。
>
> 你试一下就知道了~
>
> On Thu, 01 Mar 2007 08:50:28 +0800, Marco
> <marco在waven.com> wrote:
>
> > 你的意思是在"后台函数"里插入QApplication.processEvents() ?
> >
> > On 2/28/07, Leira Hua <lhua在altigen.com.cn> wrote:
> >> 没有细看过PyQt,不过原先作的是Qt的C++开发,由一些想法,希望指正。
> >> 对于类似情况,大多数GUI Framework都有比较常规的处理方法。一种是多线程,
> >> 这会
> >> 带来结构上的复杂度。还有一种,如果是比较简单的大量循环方式的处理的话,可
> >> 以
> >> 只用单线程,简单的在循环的间隙调用系统的事件处理函数,处理已经堆在消息队
> >> 列
> >> 中的消息就可以了。Qt/PyQt中的QApplication.processEvents()函数就是做这个
> >> 工作
> >> 的,你只要在每个循环的间隙调用这个函数就可以了。
> >>
> >> On Thu, 15 Feb 2007 21:45:35 +0800, Andelf
> >> <andelf在gmail.com> wrote:
> >>
> >> > 在07-2-15,俊杰蔡 <yzcaijunjie在gmail.com> 写道:
> >> >>
> >> >>
> >> >> 我换个方法解释下,我不知道使用PyQT来开发图形是不是要要考虑一些多线
> >> 程。我
> >> >> 前台的的GUI中的widget如textlabel内容的显示,是由后台函数处理后返回
> >> 的,然
> >> >> 而,后台后台的函数往往运行比较长,前台GUI就基本上不会有什么响应,我想
> >> 问
> >> >> 的是,有没有什么办法能解决这样的问题呢?
> >> >
> >> >
> >> > 线程呀~ Demo里边那个不是挺好的,当后台需要较长时间处理的时候就用线程
> >>
> >>
> >>
> >> --
> >> Leira Hua
> >> http://my.opera.com/Leira
> >>
> >> _______________________________________________
> >> 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
> >
> >
>
>
>
> --
> Leira Hua
> http://my.opera.com/Leira
>
> _______________________________________________
> 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


-- 
LinuX Power

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

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

    你的回复:

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

    Zeuux © 2025

    京ICP备05028076号