[Qt-interest] please help me with this problem

程梁 chengliang.soft at gmail.com
Tue Dec 8 01:44:46 CET 2009


I think it is because it is really paint but the later one draws over it.
That is the scene refresh by the new message.

2009/12/8 Yifei Li <yifli at mtu.edu>

> Hi folks,
>
> In my thread's run() method, signal displayMessage(QString) is emitted and
> the signal is connected to a slot setMessage(QString) in a QGraphicsScene
> object (using direct connection)
>
> // run method looks like this:
> void run()
> {
>   sleep(2);
>   emit displayMessage("hello 1");
>   sleep(2);
>   emit displayMessage("hello 2");
>   sleep(2);
>   emit displayMessage("hello 3");
> }
>
> // Here is what setMessage(QString) looks like:
> void setMessage(QString msg)
> {
>     m_message = msg;    // save the message
>     update();
> }
>
> The message is then displayed in drawForegound method
>
>
> However, my problem is 'hello1' and 'hello2' don't show up at all, only
> 'hello3' does.
>
> My guess is that update() queues the paint event and several paint events
> are merged into one due to optimization, so what should I do make those
> three messages displayed one after another?
>
> Thanks
>
> Yifei
> _______________________________________________
> Qt-interest mailing list
> Qt-interest at trolltech.com
> http://lists.trolltech.com/mailman/listinfo/qt-interest
>



-- 
Cheng Liang
from: chengliang.soft at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20091208/fbabfce7/attachment.html 


More information about the Qt-interest-old mailing list