在QML中有没有办法获得任何视觉对象的顶级Window
?最好不要通过视觉parent
层次结构递归。
我正在尝试找到顶级窗口的几何图形,因此后代对象可以检测它们的边界是否越过了窗口。
答案 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