В Qt Designer я вижу, что verticalLayout
имеет разницу по умолчанию (13 пикселей), но pyuic5 всегда дает мне self.verticalLayout.setContentsMargins(0, 0, 0, 0)
. В uiparser.py:443
Я нашел этот комментарий:Почему pyuic игнорирует значения по умолчанию?
Виджет макета должен по умолчанию не иметь полей.
и устанавливает его на (0,0,0,0)
. Другой комментарий также говорит:
Простой QWidget является расположение виджета, если это не родитель является QMainWindow. Обратите внимание, что соответствующий uic тест немного больше сложный, поскольку он включает в себя функции, не поддерживаемые pyuic.
Что это значит? Я использую PyQt-5.7, а вот мой пользовательский интерфейс файл:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>configDialog</class>
<widget class="QDialog" name="configDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>566</width>
<height>552</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="general">
<attribute name="title">
<string>General</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
Поэтому я не могу просто удалить '* .setContentsMargins (0, 0, 0, 0)' из вывода pyuic. Хорошая ошибка, почему она не может просто установить их на -1 – krrr