从项目获取窗口



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

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

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

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

使用Qt 5.7+,您甚至可以通过Window.window访问所有Window属性。

查看文档:http://doc.qt.io/qt-5/qml-qtquick-window-window.html#attached-properties

我想

目前的答案是"否"。这看起来像是可以发送给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" );注册)

最新更新