2011-01-26 59 views
0

在我的应用程序中,我的窗口小部件周围空间太多,我想追查哪些窗口小部件导致这个空间。空间内容的唯一来源是什么? QBoxLayout对象是否有额外的空间? matplotlib FigureCanvas怎么样?PyQt显示所有边距

我的主要问题是:

是否有递归遍历Qt物件树显示的利润空间和来源的程序?

回答

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,它可以帮助你找出罪魁祸首。然后你可以编写一段代码遍历widget树并打印出这些属性。