2

私は4つの異なる実行可能プログラムを持っています。それらは空の長方形の同じサイズのウィンドウであると考えることができます.1つのqt qmlウィンドウでそれらのexeを実行したいと思います.

ここに画像の説明を入力

a、b、c、dは同じサイズを修正した異なる実行可能ファイルで、xはqt5.11/qml quick2で書かれたウィンドウです。どうすればqt/qmlプロジェクトでそれを行うことができますか?

ウィンドウコンテナを試していますが、進歩がありません。exeはウィンドウIDをテキストに書き込んでおり、そのテキストから読んでいます。

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QtQuick2ApplicationViewer viewer;
    viewer.addImportPath(QLatin1String("modules"));
    viewer.setOrientation(QtQuick2ApplicationViewer::ScreenOrientationAuto);
    viewer.setMainQmlFile(QLatin1String("qrc:///main.qml"));
    viewer.showExpanded();

    QProcess ps;
    ps.start("sudo ./exe 1");

    sleep(10);
    ifstream myfile;
    myfile.open("winid.txt");
    WId id ; myfile >> id;
    cout<<"WId ? "<<id<<endl;
    myfile.close();

    //WId id = (WId)FindWindow(NULL, L"PMON");
    QWindow *container = QWindow::fromWinId(id);
    container->setFlags(Qt::FramelessWindowHint);
    QWidget *program_start = QWidget::createWindowContainer(container);
    program_start->setWindowTitle("Fero");

    QVBoxLayout *manageWindows = new QVBoxLayout(program_start);
    //manageWindows->addWidget(program_start);
    //manageWindows->setGeometry(QRect(0,0,1400,800));
    program_start->setLayout(manageWindows);
    program_start->show();


    return app.exec();
}
4

4 に答える 4