在qml中嵌入QWidget

    如标题所述,如果是在qt4.7及之后的qml中,嵌入一个QWidget很简单。写一个类A,继承一下QGraphicsProxyWidget就好

    class A : public QGraphicsProxyWidget{……}

    然后将要嵌入的QWidget,通过QGraphicsProxyWidget的setWidget(QWidget * widget),载入到class A中。然后直接将class A加入到qml中即可,原因是此时的qml底层是QGraphicsView,即视图。

    但是,在qt5.x开始,qml的架构变了,导致这个方法已经不可用了。如下图:

在qml中嵌入QWidget_第1张图片

     在qt5.x中qml的底层,变成了QWindow,即qml窗口就是QWindow窗口!

因此,问题的本质其实就是如何在QWindow中加入QWidget(在qml中嵌入QWidget);如何在QWidget中加入QWindow(将qml写好的控件,加入到QWidget中)。

    

 

 

 

你可能感兴趣的:(在qml中嵌入QWidget)