Re: Handling Qt/KDE widgets within Gtk+ message loop



В Срд, 15/06/2005 в 21:19 +0400, Dmitry M. Shatrov пишет:
> Hello gtk-list.
> I'm hacking on Gparts library, the aim at the moment is to embed KDE's
> KParts components (such as khtml and kpdf) into Gtk+ programs. I've got
> some results so far, though have problems with stability which were
> likely to raise when you are trying to mix two message loops.
> 
> I use XEmbed widgets to mix Gtk+ and Qt i. e. GtkSocket and
> QtXEmbedClient. At the moment I simply get X connection file descriptor
> from, say, Gtk+ and insert it as an additional file descriptor into Qt's
> message loop. (or I take Qt's X connection fd and add as a GSource into
> gtk+ message loop - both works). When 'foreign' fd is selected, the
> following code does its job:
>         while (gtk_events_pending ())
>                 gtk_main_iteration ();

I've concluded that for my particular case I have to implement XEmbed
clients by myself (I've briefly read XEmbed spec and ICCCM and see it'll
be not that difficult). I've just compiled a simple embedder (without
XEmbed support yet) and it works without any of previous problems.
Embedded kpdf works fine even with a KParts::MainWindow around it and
mixed message loops in one thread.

So I state that there are issues in interoperability of Qt and Gtk+
XEmbed widgets that I used, gtk+ 2.6.4's GtkSocket and
qtxembed-1.2-free, the latest tarball from Trolltech (they even did not
work together out of the box and I had to correct _XEMBED_INFO type
field in QtXEmbedClient, so it looks like it was a bit fondly to expect
them to work without problems)

Dmitry




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]