【发布时间】:2011-07-22 03:41:52
【问题描述】:
另见相关问题: How do you debug Qt layout problems
我正在尝试布置一些复杂的小部件层次结构,但我遇到了一些常见问题,即事物之间的距离比我预期的更近或更远。我发现一种非常有用的技术是创建一个样式表,其中包含层次结构中不同点的小部件的不同背景和边框颜色列表。我还添加了QFileSystemWatcher 以在每次保存样式表时重新加载样式表,这样可以快速更改而无需重新构建。
但是,我一直认为必须有更好的方法。查看诸如 Firefox 的 Web 开发人员工具栏之类的工具,这些工具将执行诸如标记边框或显示控件层次结构之类的操作。是否有任何工具或库可以为 Qt 应用程序执行此操作?
2016 年 5 月 5 日更新
我发现诊断间距问题的最简单和最有用的方法之一是根据 QLayouts 转储小部件层次结构。我创建了一些示例代码,其中嵌入了有关大小提示、间隔项、填充和内容边距的信息:https://gist.github.com/pjwhams/6ebc040db3ab55615eafd831e184e39c
【问题讨论】:
-
我的大脑告诉我,我曾经读过一篇由 Trolltech/Nokia 的开发人员撰写的文章,他们提到了他们使用的实用程序或帮助程序类。我一辈子都找不到那篇文章。也许其他人知道。
-
您是指 Qt Designer 中的布局管理(根据引用的问题)还是动态构建小部件和布局?
-
好吧,几周前我正在寻找类似的东西并放弃了。我通常会覆盖感兴趣的小部件的paintEvent 并用纯色填充它们。我也在使用样式表,但这一次让我很生气。
-
@Derrick - 我正在动态构建布局。我正在考虑一个外部工具,它可以连接到流程并在运行时注释小部件层次结构,或者您可以构建的类/库覆盖每个项目的绘图以显示诊断信息,例如您在 CSS工具。
-
@the_mandrill:你能和我们分享你的 QFileSystemWatcher 吗?