[Qt-interest] QMetaObject::invokeMethod()

Shabd Swarup V shabd at cadence.com
Tue Feb 3 08:35:45 CET 2009


Thanks Scott.
 
I have actually tried all three types of connections, i.e.
DirectConnection (same thread), QueuedConnection(multi-threaded) and
AutoConnection (effectively does both).
 
If I invoke the method directly, for example targetObject->triggered(),
it never returns!
 
I have a feeling QAction internally spawns another thread for its
execution. Do you think that's a possible scenario? If so, is there a
way to identify the end of exection of a QAction.
 
Thanks,
Shabd


________________________________

	From: qt-interest-bounces at trolltech.com
[mailto:qt-interest-bounces at trolltech.com] On Behalf Of Scott Aron Bloom
	Sent: Tuesday, February 03, 2009 12:53 PM
	To: qt-interest at trolltech.com
	Subject: Re: [Qt-interest] QMetaObject::invokeMethod()
	
	

	Then you want a normal connection.  A queued connection is for
multi-threaded, so it will return immediately and the signal will be
queued in the event loop for later..

	
	Scott

	 

	From: qt-interest-bounces at trolltech.com
[mailto:qt-interest-bounces at trolltech.com] On Behalf Of Shabd Swarup V
	Sent: Monday, February 02, 2009 11:11 PM
	To: qt-interest at trolltech.com
	Subject: [Qt-interest] QMetaObject::invokeMethod()

	 

	Hi,

	 

	I am trying to invoke the "triggered" signal of a QAction using
the QMetaObject::invokeMethod() call. The code snippet is given below:

	 

	QMetaObject::invokeMethod(targetObject, "triggered",
Qt::QueuedConnection);

	 

	In case of a QueuedConnection, ideally, the signal should be
queued until the event loop is able to deliver it to the slot but I get
the return even before the action has executed.

	 

	For example, there is a QAction "Open" under a MenuBar. When it
is clicked through the QMetaObject, I get a response immediately and
then the QFileDialog opens.

	In case of all other widgets, this method seems to behave well.

	 

	I hope the problem is clear. Any ideas on how I can achieve what
I am trying. I basically need to find out when the action is finished
executing.

	 

	Thanks in advance.

	 

	Regards,

	Shabd

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20090203/c29342ac/attachment.html 


More information about the Qt-interest-old mailing list