Window
在 QML 中有没有办法获得任何视觉对象的顶层?最好不要在视觉parent
层次结构中递归。
我正在尝试查找顶级窗口的几何形状,因此后代对象可以检测它们的边界是否已越过窗口。
所有s都有Window
属性。Item
哪些取决于 Qt 版本。例如Window.width
是当前顶级窗口/视图宽度。
你可以得到一个特定Item
的;Window
myItem.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" );
)