我的应用程序中的小部件周围有太多空间,我想跟踪哪些小部件导致了这个空间。是空间内容的唯一来源吗? QBoxLayout对象是否有额外的空间? matplotlib FigureCanvas怎么样?
我的主要问题是:
是否有程序以递归方式遍历显示边距和空间来源的Qt窗口小部件树?
答案 0 :(得分:0)
我不知道这样的程序,但是如果您使用Qt Designer,您可以使用任何文本查看器打开* .ui文件,并查找具有可疑名称的属性,例如“margin”或“spacing”。盒子布局也有它们,例如:
<layout class="QVBoxLayout" >
<property name="spacing" >
<number>6</number>
</property>
<property name="leftMargin" >
<number>6</number>
</property>
<property name="topMargin" >
<number>6</number>
</property>
<property name="rightMargin" >
<number>6</number>
</property>
<property name="bottomMargin" >
<number>6</number>
</property>
正如您所看到的,此处还有许多额外的6像素边距和间距。一旦你弄清楚哪些属性对你的麻烦负责,只需将它们设置为零或合理的东西。
如果你不使用Qt Designer,那就更难了。您仍然可以使用Designer创建示例GUI,以帮助您找出罪魁祸首。然后,您可以编写一段遍历窗口小部件树的代码并打印出该属性。