从物品中获取窗口

时间:2013-10-28 23:53:09

标签: qt qml qtquick2

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

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

2 个答案:

答案 0 :(得分:3)

我想现在的答案是" No"。这看起来像是一个可以发送给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" );照常注册)

答案 1 :(得分:2)

所有from cx_Freeze import setup, Executable import os os.environ['TCL_LIBRARY'] = C:\Users\mohamed-tayeh\AppData\Local\Programs\Python\Python36-32\tcl\tcl8.6 setup(name='Test', version='0.1', description='Parse stuff', executables=[Executable('Test.py')]) 附加了Window个属性。哪些依赖于Qt版本。例如。 Item是当前顶级窗口/视图宽度。

您可以使用Window.width获得特定的Item Window;

使用Qt 5.7+,您甚至可以通过myItem.Window访问所有Window媒体资源。

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