这个问题是由以下QML引起的:
ApplicationWindow {
Rectangle {
Text { text: "Hello World" }
}
Item {
// I do something
Window {
Text { text: "Hello world too!" }
}
}
}在此示例中,有一个应用程序窗口,然后是项目内的第二个窗口。我试图复制这种用法,但是通过在扩展的QQuickItem中实例化一个QQuickWindow来实现,但是根据文档,我不能这样做,因为QQuickItem不是QWindow类型。我想要的是:
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)上失败了。我怎样才能以类似的方式做到这一点呢?
发布于 2018-08-22 01:41:04
Window不是item的子项,也不是以下代码中容易看到的任何元素的子项:
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)
}
}输出:
qml: item : ContentItem_QMLTYPE_10(0x56353791dbe0)
qml: new_window : undefined很明显,Item是contentItem的子节点,而Window没有父节点。
https://stackoverflow.com/questions/51953510
复制相似问题