查看完整版本: [-- QWidget怎么设置QQuickView为父窗口(QT 5.2.1) --]

QTCN开发网 -> Qt QML开发 -> QWidget怎么设置QQuickView为父窗口(QT 5.2.1) [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

zhangyi123 2018-03-22 16:32

QWidget怎么设置QQuickView为父窗口(QT 5.2.1)

我的需求是在一个QQuickView上嵌入一个QWidget,而且要保持QWidget背景透明,代码如下:

QQuickView *viewer;
    viewer=new QQuickView(QUrl::fromLocalFile("main.qml"));
    viewer->setResizeMode(QQuickView::SizeRootObjectToView);
    viewer->setFlags(Qt::Window|Qt::FramelessWindowHint);
    viewer->setGeometry(150,150,400,400);
    viewer->show();

   QLabel *widget=new QLabel;
   widget->setAttribute(Qt::WA_NativeWindow,true);
   widget->setAutoFillBackground(false);
   widget->setWindowFlags(Qt::FramelessWindowHint);

   widget->setGeometry(120,120,50,50);
   widget->windowHandle()->create();
   widget->windowHandle()->setParent(viewer);
   widget->show();
发现这个widget的背景是黑色的,说明没有设置成功父窗口,请问各位大神有什么办法能让widget顺利显示透明?

maxlogo 2018-03-22 16:57
正确的做法是使用QQuickWidget包装qml
不过看了一下题目,你的qt是5.2...

zhangyi123 2018-03-22 17:08
maxlogo:正确的做法是使用QQuickWidget包装qml
不过看了一下题目,你的qt是5.2... (2018-03-22 16:57) 

是啊,一开始我想的是将QQuickView嵌入QWidget,但是我发现这个承载QQuickView的QWidget总是会把界面上的其他控件给遮挡住


查看完整版本: [-- QWidget怎么设置QQuickView为父窗口(QT 5.2.1) --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled