是否可以显示QML控件边界?

是否可以显示QML控件边界?,qml,qt5,Qml,Qt5,在开发QML应用程序时,如果我能够设置一些设置来勾勒出所有可视元素的边界,我认为它有时会很有用。例如,Qt Quick Controls 2.x中的控件可能由几个部分组成,如背景、contentItem、指示器等。调整这些部分的大小时,我希望看到每个部分的边界 Qt/QML中有类似的功能吗?有一个名为GammaRay的工具,它(除其他外)允许调查QtQuick 2应用程序,请参阅: 安装说明如下: 如果您正在运行Linux,很可能您的发行版已经发布了一个GammaRay软件包。有一个名为Ga

在开发QML应用程序时,如果我能够设置一些设置来勾勒出所有可视元素的边界,我认为它有时会很有用。例如,Qt Quick Controls 2.x中的控件可能由几个部分组成,如背景、contentItem、指示器等。调整这些部分的大小时,我希望看到每个部分的边界


Qt/QML中有类似的功能吗?

有一个名为GammaRay的工具,它(除其他外)允许调查QtQuick 2应用程序,请参阅:

安装说明如下:


如果您正在运行Linux,很可能您的发行版已经发布了一个GammaRay软件包。

有一个名为GammaRay的工具,它(除其他外)允许调查QtQuick 2应用程序,请参阅:

安装说明如下:


如果您运行的是Linux,很可能您的发行版已经发布了一个GammaRay软件包。

三年后,人们(特别是我)仍在对此进行网络搜索:)

正如commenter@DuKes0mE所建议的那样,我通过动态地为事物添加边界,然后从最终代码中删除它们,从而“完成了任务”

像OP一样,我现在已经厌倦了这样做

我最近采用的一种策略是将
DebugRectangle.qml
自定义元素添加到我的项目中:

导入QtQuick 2.12
长方形{
属性var toFill:parent//实例化站点“可以”(可选)重写
属性颜色customColor:'黄色'//实例化站点“可以”(可选)重写
属性int customThickness:1//实例化站点“可以”(可选)重写
锚。填充:toFill
z:200
颜色:“透明”
border.color:customColor
边框宽度:自定义厚度
}
然后我可以将其添加到现有元素中,如这样,以调试它们:

标签{
文字:“Lorem ipsum dolor sit amet”
}
标签{
文本:“quis nostrud实习”
DebugRectangle{}//将“调试边框”添加到此标签
}
完成后,我甚至可以在代码中保留嵌套的
DebugRectangle
,但可以像这样切换其可见性:

标签{
文本:“quis nostrud实习”
调试矩形{
可见:假
}
}

在GitHub上共享。

三年后,人们(特别是我)仍在为此进行网络搜索:)

正如commenter@DuKes0mE所建议的那样,我通过动态地为事物添加边界,然后从最终代码中删除它们,从而“完成了任务”

像OP一样,我现在已经厌倦了这样做

我最近采用的一种策略是将
DebugRectangle.qml
自定义元素添加到我的项目中:

导入QtQuick 2.12
长方形{
属性var toFill:parent//实例化站点“可以”(可选)重写
属性颜色customColor:'黄色'//实例化站点“可以”(可选)重写
属性int customThickness:1//实例化站点“可以”(可选)重写
锚。填充:toFill
z:200
颜色:“透明”
border.color:customColor
边框宽度:自定义厚度
}
然后我可以将其添加到现有元素中,如这样,以调试它们:

标签{
文字:“Lorem ipsum dolor sit amet”
}
标签{
文本:“quis nostrud实习”
DebugRectangle{}//将“调试边框”添加到此标签
}
完成后,我甚至可以在代码中保留嵌套的
DebugRectangle
,但可以像这样切换其可见性:

标签{
文本:“quis nostrud实习”
调试矩形{
可见:假
}
}

在GitHub上共享。

您是否尝试为每个控件定义样式,并设置类似于
border.color:“黑色”;边界宽度:5
?@DuKes0mE:我希望有更通用的东西,例如QSG_VISUALIZE=overdraw,可以设置为在3D中显示所有QML组件。您是否尝试为每个控件定义样式,并设置类似于
border.color:“黑色”;边界宽度:5
?@DuKes0mE:我希望有更通用的东西,比如QSG_VISUALIZE=overdraw,可以设置为在3D中显示所有QML组件。我不想挑剔,因为GammaRay是一个优秀的工具,而且是免费的。。。不过,伊姆霍,你应该更清楚地说明你的从属关系,而不仅仅是我们和你的雇主在你的个人资料中的评论。@kfunk:我知道GammaRay存在,但还没有使用它。从上面的链接我可以看到,它似乎可以做我想做的事情。我会试试。@derM:这是一个牢记自由和开放源码软件原则的工具,这是一个完全基于我使用经验的建议。我没钱出去推销GammaRay,所以这是肯定的。我把我们换成了我,所以这更清楚。我不想挑剔,因为GammaRay是一个很好的工具,免费的东西。。。不过,伊姆霍,你应该更清楚地说明你的从属关系,而不仅仅是我们和你的雇主在你的个人资料中的评论。@kfunk:我知道GammaRay存在,但还没有使用它。从上面的链接我可以看到,它似乎可以做我想做的事情。我会试试。@derM:这是一个牢记自由和开放源码软件原则的工具,这是一个完全基于我使用经验的建议。我没钱出去推销GammaRay,所以这是肯定的。我用I替换了we,这样更清楚了。