Qt 在实例化之前访问Components属性

Qt 在实例化之前访问Components属性,qt,reflection,qml,qtquick2,Qt,Reflection,Qml,Qtquick2,我有以下问题: 我有一个组件s的列表,其中包含宽度为200或800的矩形s。我想过滤这个列表,当我在小屏幕上工作时,只创建宽度为200的矩形的对象 我最好不要创建所有对象,检查它们的宽度,并再次销毁那些宽度错误的对象。出于显而易见的原因,我只想创建宽度为200的 要做到这一点,我需要在实例化宽度之前获得宽度的知识。 就我所见,在实例化组件之前,没有公开可用和文档化的方法来内省/反映组件 我的问题是:是否有一种非公开的方式来获取有关我的组件中打包的内容的知识?用C+++< /P>有可能吗? 或者至

我有以下问题: 我有一个
组件
s的列表,其中包含宽度为200或800的
矩形
s。我想过滤这个列表,当我在小屏幕上工作时,只创建宽度为200的
矩形的对象

我最好不要创建所有对象,检查它们的宽度,并再次销毁那些宽度错误的对象。出于显而易见的原因,我只想创建宽度为200的

要做到这一点,我需要在实例化宽度之前获得宽度的知识。 就我所见,在实例化
组件之前,没有公开可用和文档化的方法来内省/反映组件

我的问题是:是否有一种非公开的方式来获取有关我的
组件中打包的内容的知识?用C+++< /P>有可能吗?

或者至少有可能找出封装了什么类型的对象?它是否是一个
自定义组件1
、一个
按钮
、一个
红色矩形

。您甚至无法预测它,因为该组件甚至可能指向一个尚未下载的qml文件,如果它是从网络中获取的

如果你有空间从另一个角度来解决问题,你可以尝试以下几点:

您可以做的是在创建组件时将属性从组件外部传递到组件中。假设您控制组件内的代码,则可以根据从外部设置的属性值调整内部元素的创建方式

如果这还不够好,假设您的组件提供了多个元素,并且您只希望创建符合您的条件的元素(可能是多个元素的组合),那么您可以在第一个组件中引入第二个组件层,并让第二个组件创建符合您的条件的实际元素,或者一个空项目{},如果它没有,这是接近不创建任何东西


我希望这有帮助

不幸的是没有。您甚至无法预测它,因为该组件甚至可能指向一个尚未下载的qml文件,如果它是从网络中获取的

如果你有空间从另一个角度来解决问题,你可以尝试以下几点:

您可以做的是在创建组件时将属性从组件外部传递到组件中。假设您控制组件内的代码,则可以根据从外部设置的属性值调整内部元素的创建方式

如果这还不够好,假设您的组件提供了多个元素,并且您只希望创建符合您的条件的元素(可能是多个元素的组合),那么您可以在第一个组件中引入第二个组件层,并让第二个组件创建符合您的条件的实际元素,或者一个空项目{},如果它没有,这是接近不创建任何东西


我希望这有帮助

多谢各位。你对URL有一个很好的理解。然而,我可以得到数据,一旦下载。难道
GammaRay
不具备反思
组件的能力吗?(到目前为止,我还没有尝试过
GammaRay
我自己!)如果
GammaRay
能够显示它,我认为应该可以将信息反馈回QML(如果需要的话)谢谢。你对URL有一个很好的理解。然而,我可以得到数据,一旦下载。难道
GammaRay
不具备反思
组件的能力吗?(到目前为止,我还没有尝试过
GammaRay
我自己!)如果
GammaRay
能够显示它,我认为应该可以将信息反馈回QML(如果需要的话)