QT 5.5 einbetten externe Anwendung in QWidget

Ich interessiere mich für das einbetten einer externen Anwendung in meinem QT 5.5 Widget-basierte Anwendung. Ich bin nur besorgt, mit dem es arbeiten auf Linux. Ich bin mit CentOS 7 GNOME.

Dies ist der code, den ich versucht habe:

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    QWindow *window = QWindow::fromWinId(125829124);
    QWidget *widget = QWidget::createWindowContainer(window);
    widget->setParent(this);
    QVBoxLayout *layout = new QVBoxLayout();
    layout->addWidget(widget);
    this->setLayout(layout);
}

In diesem Beispiel bin ich immer die WinId getrennt und nur hart codierte Wert für die Prüfung. Die Anwendung eingebettet werden, die ausgeführt wird.

Wenn ich Sie ausführen, meine Anwendung läuft ohne Fehler. Und die Anwendung eingebettet werden Veränderungen der Bildposition und die Größe, jedoch nicht das einbetten in meine Anwendung. Es ist noch eine separate Fenster. Wenn ich töte meine Anwendung, die eine eingebettete Anwendung ist auch getötet.

Also gibt es einen Weg, um tatsächlich einbetten die Anwendung innerhalb meiner Anwendung?

*************** UPDATE ****************

Etwas Interessantes habe ich gerade entdeckt. Wenn ich meine Anwendung (container-Anwendung) die zweite Anwendung (die, die ich will embedded) weiterhin eine unabhängige Fenster außerhalb meiner Anwendung. Jedoch wenn ich die Größe meiner Fenster der Anwendung (klicken Sie auf die untere Rechte Ecke, um die Größe der Fenster), die zweite Anwendung (eingebettet) ändert, wie gut, bleibt aber einem separaten Fenster außerhalb meines container-Anwendung.

Noch interessanter ist, dass wenn ich töte meinen Antrag, beide Anträge "verschwinden" vom desktop. Allerdings-System-Monitor zeigt die zweite Anwendung (die, die ich will embedded) läuft immer noch (allerdings ohne GUI). Nun, wenn ich starte meine Anwendung wieder die zweite Anwendung ist in der Tat eingebettet in meine container-Anwendung, gerade so, wie ich möchte!

So, ich denke, ich muss herausfinden, warum das töten von meiner Bewerbung und dann Relaunch bettet es die zweite Anwendung korrekt.

  • "jedoch nicht einbinden in meine Anwendung" können Sie uns einen screenshot?
InformationsquelleAutor dan poder | 2015-11-13
Schreibe einen Kommentar