首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从C++扩展QQuickItem创建QQuickWindow作为子级?

如何从C++扩展QQuickItem创建QQuickWindow作为子级?
EN

Stack Overflow用户
提问于 2018-08-22 01:00:36
回答 1查看 553关注 0票数 0

这个问题是由以下QML引起的:

代码语言:javascript
复制
ApplicationWindow {
    Rectangle {
        Text { text: "Hello World" }
    }

    Item {
        // I do something

        Window {
            Text { text: "Hello world too!" }
        }
    }
}

在此示例中,有一个应用程序窗口,然后是项目内的第二个窗口。我试图复制这种用法,但是通过在扩展的QQuickItem中实例化一个QQuickWindow来实现,但是根据文档,我不能这样做,因为QQuickItem不是QWindow类型。我想要的是:

代码语言:javascript
复制
class Foo : public QQuickItem {
private:
    QQuickWindow * childWindow;
public:
    Foo(QQuickItem * parent = 0) : QQuickItem(parent) {
        childWindow = new QQuickWindow();
        childWindow->setParent(this);
        // Add custom items to childWindow
    }
}

不幸的是,由于QQuickItem没有扩展QWindow,所以这在childWindow->setParent(this)上失败了。我怎样才能以类似的方式做到这一点呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-22 01:41:04

Window不是item的子项,也不是以下代码中容易看到的任何元素的子项:

代码语言:javascript
复制
ApplicationWindow {
    width: 100
    height: 100
    visible: true
    Rectangle {
        Text { text: "Hello World" }
    }

    Item{
        id: item
        Window{
            id: new_window
            visible: true
            color: "red"
            Component.onCompleted: console.log("new_window :",new_window.parent)
        }
        Component.onCompleted: console.log("item :", item.parent)
    }
}

输出:

代码语言:javascript
复制
qml: item : ContentItem_QMLTYPE_10(0x56353791dbe0)
qml: new_window : undefined

很明显,ItemcontentItem的子节点,而Window没有父节点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51953510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档