Как я могу интегрировать qt wayland compositor в виджет qt? - PullRequest
0 голосов
/ 24 октября 2019

Я теперь о QWidget :: createWindowContainer (view, this), но я не знаю, как избавиться от свойства "window" в моем файле QML внутри WaylandOutput, ведьма создает новое окно. Как я могу интегрировать окно QML со своим композитором в обычный виджет qt.

Item {
    id: item1
    WaylandCompositor {
        WaylandOutput {
            sizeFollowsWindow: true
            window: Window {
                color: "green"
                id: win
                title: "svoloch"
                width: 700
                height: 700
                visible: true

                Repeater {
                    model: shellSurfaces
                    ShellSurfaceItem {
                        onSurfaceDestroyed: shellSurfaces.remove(index)
                        shellSurface: shSurface
                        WaylandHardwareLayer {
                            stackingLevel: level
                            Component.onCompleted: console.log("Added hardware layer with stacking level", stackingLevel);
                        }
                        Component.onCompleted: console.log("Added wayland quick item");
                    }
                }
            }
        }
        ListModel { id: shellSurfaces }
        XdgShell { onToplevelCreated: addShellSurface(xdgSurface) }
        XdgShellV6 { onToplevelCreated: addShellSurface(xdgSurface) }
        WlShell { onWlShellSurfaceCreated: addShellSurface(shellSurface) }
    }

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


    QQuickWidget * quick_widget = new QQuickWidget(this) ;
    quick_widget->setSource(QUrl("qrc:/main.qml"));
    ui->verticalLayout->addWidget(quick_widget);
}


[enter image description here][1]


  [1]: https://i.stack.imgur.com/oORlT.png
...