8

Window在 QML 中有没有办法获得任何视觉对象的顶层?最好不要在视觉parent层次结构中递归。

我正在尝试查找顶级窗口的几何形状,因此后代对象可以检测它们的边界是否已越过窗口。

4

2 回答 2

9

所有s都有Window属性。Item哪些取决于 Qt 版本。例如Window.width是当前顶级窗口/视图宽度。

你可以得到一个特定Item的;WindowmyItem.Window

使用 Qt 5.7+,您甚至可以Window通过Window.window.

请参阅文档:http ://doc.qt.io/qt-5/qml-qtquick-window-window.html#attached-properties

于 2017-12-27T08:40:10.967 回答
3

我想目前的答案是“不”。这看起来像是可以发送给 QML 团队的功能建议。

我最终将自己的 C++ 类导出到 QML。

ItemWithWindow.h:

#include <QQuickItem>

class ItemWithWindow : public QQuickItem
{
    Q_OBJECT

public:

    Q_PROPERTY( QQuickWindow* window READ window NOTIFY windowChanged )

signals:

    void windowChanged();
};

(它像往常一样注册qmlRegisterType<ItemWithWindow>( uri, 1, 0, "ItemWithWindow" );

于 2016-01-18T09:25:11.833 回答