PyQt отображает все поля - PullRequest
       9

PyQt отображает все поля

0 голосов
/ 26 января 2011

В моем приложении слишком много места вокруг моих виджетов, и я хочу отследить, какие виджеты вызывают это пространство.Является ли единственным источником космического контента Margins?Есть ли дополнительное пространство, созданное объектами QBoxLayout?Как насчет matplotlib FigureCanvas?

Мой главный вопрос:

Есть ли программа, которая рекурсивно перебирает дерево виджетов Qt, отображая поля и источники пространства?

1 Ответ

0 голосов
/ 26 января 2011

Я не знаю о такой программе, но если вы используете 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 для создания примера графического интерфейса пользователя, который поможет вам определить виновных. Затем вы можете написать фрагмент кода, который обходит дерево виджетов и распечатывает эти свойства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...