On 10.10.2009, at 19:42, Piotr Korzuszek wrote:

Looks like running Qt before Felix and Felix in separate thread works good
enough :-)

Yep,

the only requirement, is to call exec in the main thread. Everything else is allowed (of course).

Regards,

Clement


Thanks for your help!

On Fri, Oct 9, 2009 at 10:22 PM, Clement Escoffier <
[email protected]> wrote:


On 09.10.2009, at 21:54, Piotr Korzuszek wrote:

Are you sure? Because I'm just running Qt in start() without any error.


Well, it might be fuzzy and the event dispatcher (GUI Thread for Jambi) needs to be the main thread. I did that for Windows without a lot of issues,
but on Mac it was terrible...


Anyway I have an idea: to use this

http://felix.apache.org/site/apache-felix-framework-launching-and-embedding.htmlto
run Qt init before Felix and then load other bundles, but I don't know how to make them to access Qt classes yet :-), neither if this is really a
good idea.


That's what I did. Initializing QT. Starting Felix, Provisioning all the
bundles, and calling exec.


Regards,

Clement



On Fri, Oct 9, 2009 at 9:39 PM, Clement Escoffier <
[email protected]> wrote:


On 09.10.2009, at 21:29, Piotr Korzuszek wrote:

Hi Clement, thanks for reply,


Sorry, but I knew that already. The thing is that when I put
QApplication.init() and QApplication.exec() in bundle start() method
then
I
cannot do anything in Felix console after running that bundle, because
start() cannot return.

I've tried to run QApplication.init() in Main thread and
QApplication.exec()
in other thread but this only results in this:
---
QApplication::exec: Must be called from the main thread
---

Or maybe I misunderstood you?


No, Felix does not start bundle in the main thread (it is absolutely not required). So, it will not work if you try to call such method in the
start
method of a bundle. It has to be in the main thread : i.e. initialized
externally.

Regards,

Clement





On Fri, Oct 9, 2009 at 8:23 PM, Clement Escoffier <
[email protected]> wrote:


On 09.10.2009, at 19:54, Piotr Korzuszek wrote:

Hello,


I'm trying to make Qt and Felix work together. The problem is that
when
I
run the Qt main loop (QApplication.exec()) the main thread is locked
until
the GUI is closed (so Felix is too).

I cannot put this in seperate thread because it complains to me about
not
being in the main thread. On the Qt forum developers motivates this
behavior
by Mac OS X GUI system that must be handled in the main thread.
Any ideas how to solve this?


Hi,

QTBambi has to be initialized in the main thread. So, the init method
has
to be called in the Main thread ( the thread executing the main
method).

However, on Mac, you must set the -XstartOnFirstThread to execute the
main
method in the Main thread.

Regards,

Clement



--

Pozdrawiam
Piotr Korzuszek

[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]




--
Pozdrawiam
Piotr Korzuszek

[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]




--
Pozdrawiam
Piotr Korzuszek

[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]




--
Pozdrawiam
Piotr Korzuszek

[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to