[Interest] QX11EmbedWidget doesn't show
Oswaldo F. Filho
offox2001 at gmail.com
Mon Aug 26 20:03:33 CEST 2013
I have the source code below:
widget.h
#include <QX11EmbedWidget>
#include <syslog.h>
class Widget : public QX11EmbedWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
public slots:
void print()
{
syslog(LOG_INFO, "qtembed embedded");
}
void init()
{
connect(this, SIGNAL(embedded()), SLOT(print()));
}
};
widget.cpp
#include "widget.h"
Widget::Widget(QWidget *parent)
: QX11EmbedWidget(parent)
{
}
main.cpp
#include <stdio.h>
#include <syslog.h>
#include <QApplication>
#include "widget.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Widget window;
window.setWindowFlags(Qt::Window | Qt::CustomizeWindowHint |
Qt::X11BypassWindowManagerHint);
window.init();
WId id = window.winId();
fprintf (stdout, "WINDOW ID=%li\n", id);
fflush (stdout);
syslog(LOG_INFO, "qtembed started!");
syslog(LOG_INFO, "WINDOW ID=%li\n", id);
window.show();
return app.exec();
}
After executed /var/log/system:
Aug 26 14:47:23 station qtembed: qtembed started!
Aug 26 14:47:23 station qtembed: WINDOW ID=104857610
Aug 26 14:47:23 station qtembed: qtembed embedded
In my GTK application there is a container that receive Window ID using the
function:
static void
create_lock_socket (GSWindow *window, guint32 id)
{
window->priv->lock_socket = gtk_socket_new ();
window->priv->lock_box = gtk_alignment_new (0.5, 0.5, 0, 0);
gtk_widget_show (window->priv->lock_box);
gtk_box_pack_start (GTK_BOX (window->priv->vbox),
window->priv->lock_box, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (window->priv->lock_box),
window->priv->lock_socket);
g_signal_connect (window->priv->lock_socket, "show",
G_CALLBACK (lock_socket_show), window);
g_signal_connect (window->priv->lock_socket, "destroy",
G_CALLBACK (lock_socket_destroyed), window);
g_signal_connect (window->priv->lock_socket, "plug_added",
G_CALLBACK (lock_plug_added), window);
g_signal_connect (window->priv->lock_socket, "plug_removed",
G_CALLBACK (lock_plug_removed), window);
gtk_socket_add_id (GTK_SOCKET (window->priv->lock_socket), id);
}
Another embed application write with GTK works well. My code with Qt
doesn't work. Window doesn't show.
What happened?
Oswaldo Fratini Filho.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20130826/51a58cb4/attachment.html>
More information about the Interest
mailing list