Layout pyuic4生成错误的布局?

Layout pyuic4生成错误的布局?,layout,pyqt,pyqt4,qt-designer,pyuic,Layout,Pyqt,Pyqt4,Qt Designer,Pyuic,pyuic4似乎基于Qt Designer中的.ui文件生成了错误的布局。用户界面文件如下: 对话 0 0 348 267 对话 0 0 16777215 25 htmlhead/bodyp align=“center”span style=“font size:14pt;”一些文本/span/p/body/html 0 0 Qt::水平 Qt::水平 定制 好啊 在这个布局中,我试图将一对按钮与对话框窗口的底部对齐,将一些文本与顶部对齐。运行pyuic4 test.ui--preview显

pyuic4似乎基于Qt Designer中的.ui文件生成了错误的布局。用户界面文件如下:


对话
0
0
348
267
对话
0
0
16777215
25
htmlhead/bodyp align=“center”span style=“font size:14pt;”一些文本/span/p/body/html
0
0
Qt::水平
Qt::水平
定制
好啊
在这个布局中,我试图将一对按钮与对话框窗口的底部对齐,将一些文本与顶部对齐。运行
pyuic4 test.ui--preview
显示所有对象水平对齐到中心,而不是顶部和底部(显示实际python程序中的此对话框显示相同的结果)。相比之下,
pyuic5 test.ui--preview
似乎更符合我的要求

如果有帮助的话,我的pyuic4版本是4.11.4,我使用的是Ubuntu 16.04


有什么想法吗?我做错什么了吗?或者可能有更新的pyuic吗?

pyuic中存在影响布局中对齐处理的错误。这在2015年7月17日发布的PyQt-5.5中得到了修复。但是,PyQt-4.11.4(当前版本)是在2015年6月11日发布的,因此该修复程序尚未包括在内。不过,PyQt-4.12当前的开发快照中确实包含了修复程序

但我认为这并不能真正解决你的问题。您需要做的是使用膨胀垫片。以下是如何使用示例ui文件执行此操作:

  • 单击水平按钮布局,然后单击打断布局(这将删除所有当前布局)
  • 按住Ctrl键并单击这两个按钮,然后单击水平布局
  • 单击对话框,然后单击垂直布局
  • 在两个行窗口小部件之间拖放一个垂直间隔符
  • 给你这个:


    如果您希望在中心区域中有一些其他小部件,您可能需要在其上方和/或下方添加扩展的垂直分隔符,以获得相同的结果。同样,如果您在其中放置文本框或列表小部件,它应该自动扩展以填充可用空间-在这种情况下,不需要任何间隔符(或布局对齐)。

    +一个用于通知错误和解释原始示例以外的内容