在开发QML应用程序时,如果我能够设置一些设置来概述所有可视元素边界,我认为它有时会很有用。例如,Qt Quick Controls 2.x中的控件可能包含几个部分,例如background,contentItem,指示器等。当调整这些部分的大小时,我希望看到每个部分的边界。
Qt / QML中是否有这样的功能?
答案 0 :(得分:3)
三年后,人们(特别是我)仍在对此进行网络搜索:)
就像评论者@ DuKes0mE所建议的那样,我通过即时添加边框并将其从最终代码中删除来“做”。
像OP一样,我现在已经厌倦了这样做。
我最近想到的一种策略是在项目中添加一个DebugRectangle.qml
自定义元素:
import QtQuick 2.12
Rectangle {
property var toFill: parent // instantiation site "can" (optionally) override
property color customColor: 'yellow' // instantiation site "can" (optionally) override
property int customThickness: 1 // instantiation site "can" (optionally) override
anchors.fill: toFill
z: 200
color: 'transparent'
border.color: customColor
border.width: customThickness
}
然后我可以将其添加到现有元素中,以对其进行调试:
Label {
text: 'Lorem ipsum dolor sit amet'
}
Label {
text: 'quis nostrud exercitation'
DebugRectangle {} // Adds "debug border" to this Label
}
完成后,我什至可以将嵌套的DebugRectangle
留在代码中,但可以像这样切换其可见性:
Label {
text: 'quis nostrud exercitation'
DebugRectangle {
visible: false
}
}
Complete sample project在GitHub上共享。
答案 1 :(得分:2)
有一个名为GammaRay的工具(其中包括)允许调查QtQuick 2应用程序,请参阅: BeginInvoke
安装说明在这里: http://doc.qt.io/GammaRay/gammaray-qtquick2-inspector.html
如果您正在运行Linux,那么您的发行版很可能已经发布了GammaRay包。