[Qt-interest] QGraphicsScene problem
Patric
userqt at gmail.com
Sat Aug 29 10:51:14 CEST 2009
Apparently QGraphicsItem is calling the timer. Maybe moveBy() works with timer I don't know.
But moveBy() is called from my second thread, and the scene object is located in the main thread.
----- Original Message -----
From: Scott Aron Bloom
To: qt-interest at trolltech.com
Sent: Saturday, August 29, 2009 11:44 AM
Subject: Re: [Qt-interest] QGraphicsScene problem
Put a breakpoint in QObject at the warning message. Then see who is calling the timer.
Somewhere in your code there is a timer kicking off
Scott
From: Patric [mailto:userqt at gmail.com]
Sent: Saturday, August 29, 2009 1:40 AM
To: Scott Aron Bloom; qt-interest at trolltech.com
Subject: Re: [Qt-interest] QGraphicsScene problem
I don't have any timers.
But I have found that when the item's moveBy() functions is called, the warning is given.
The scene is in the main thread, the worker thread possesses a pointer to the scene.
And the worker thread is trying to move the item's in the scene around.
----- Original Message -----
From: Scott Aron Bloom
To: qt-interest at trolltech.com
Sent: Saturday, August 29, 2009 11:21 AM
Subject: Re: [Qt-interest] QGraphicsScene problem
The timer is owned/constructed in one theread, and is being started/stoped by the worker thread.
Try calling moveToThread to move the timers into the worker thread.
Scott
From: qt-interest-bounces at trolltech.com [mailto:qt-interest-bounces at trolltech.com] On Behalf Of Patric
Sent: Saturday, August 29, 2009 1:11 AM
To: qt-interest at trolltech.com
Subject: [Qt-interest] QGraphicsScene problem
Hello guys,
I have QGraphicsScene here with items on it.
I have manual control (i.e. keyboard events) and also auto control (through a thread which makes all the calculations where these QPixmapItems should interact).
When I control them, everything is OK.
But when I start the auto control, i.e. my thread which simulates the actions, I'm observing a very strange behaviour. It's a game actually, it's turn based.
So somethimes the objects on the board are just not moving on their turns.
I have implemented this simulation engine with the technique used in the Mandelbrot example.
In my MainWindow class I have instance of the engine thread, and when some button in the GUI is pressed MainWindow calls a method in the thread (directly), which wakes the thread.
And I'm getting this shit :
QObject::killTimer: timers cannot be stopped from another thread
QObject::startTimer: timers cannot be started from another thread
QObject::killTimer: timers cannot be stopped from another thread
QObject::startTimer: timers cannot be started from another thread
QObject::killTimer: timers cannot be stopped from another thread
QObject::startTimer: timers cannot be started from another thread
Any ideas why ?
Regards,
Patric
p.s.:in the end of the thread's run method there is sleep call also.
----------------------------------------------------------------------------
_______________________________________________
Qt-interest mailing list
Qt-interest at trolltech.com
http://lists.trolltech.com/mailman/listinfo/qt-interest
------------------------------------------------------------------------------
_______________________________________________
Qt-interest mailing list
Qt-interest at trolltech.com
http://lists.trolltech.com/mailman/listinfo/qt-interest
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20090829/7cd7ec24/attachment.html
More information about the Qt-interest-old
mailing list