从物品中获取窗口
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从物品中获取窗口相关的知识,希望对你有一定的参考价值。
在QML中有没有办法获得任何视觉对象的顶级Window
?最好不要通过视觉parent
层次结构递归。
我正在尝试找到顶层窗口的几何体,因此后代对象可以检测它们的边界是否越过了窗口。
答案
我想现在的答案是“不”。这看起来像是一个可以发送给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" );
注册)
另一答案
所有Window
s都附有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
以上是关于从物品中获取窗口的主要内容,如果未能解决你的问题,请参考以下文章