[Qt-interest] please help me with this problem

Yifei Li yifli at mtu.edu
Mon Dec 7 19:06:11 CET 2009


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



More information about the Qt-interest-old mailing list