2016-08-27 7 views
0

У меня есть QMainWindow с виджетами, выложенными в сетке. Все они изменяются пропорционально, когда окно изменяется как ожидалось, за исключением виджета, размещенного внутри QGroupBox. Сам QGroupBox изменяется, но виджеты внутри остаются на одном месте. Если я применил раскладку на QGroupBox, виджеты потеряют свои исходные позиции. Обратите внимание, что я использую файл .ui с PyQt4. Вы можете получить файл here.Почему виджеты QGroupBox не изменяются динамически с остальной частью окна?

И это то, что происходит:

enter image description here

enter image description here

+3

Виджеты внутри группового поля должны быть в макете. Если они не в макете, их размер фиксирован (макет управляет размером, без макета, без изменения размера) – Fabio

+0

Что вы имеете в виду, когда говорите «виджеты теряют свои исходные позиции»? (PS: пожалуйста, не связывайтесь с кодом на других сайтах - поместите его в вопрос сам). – ekhumoro

+0

Я имею в виду, что если я применил макет на QGroupBox, все виджеты внутри разместите себя в соответствии с типом макета. Даже если это грид-макет, они не остаются там, где вы их видите на скриншоте, но занимаете позиции совершенно разные. – R01k

ответ

2

От Qt documentation on QGroupBox:

QGroupBox не автоматически раскладывать дочерние виджеты (которые часто QCheckBoxes или QRadioButtons, но могут быть любыми виджетами).

Существует пример, показывающий, как настроить макет для QGroupBox (который является тем же установка до макета для любого объекта на основе QWidget предназначается, чтобы хранить другие предметы, как, например, QFrame).

Необходимо создать макет, вызвать QGroupBox::setLayout, а затем добавить виджеты в макет. Если вы используете QtCreator, щелкните правой кнопкой мыши QGroupBox и выберите макет, который вы хотите использовать для него из контекстного меню.

+0

Спасибо. В итоге я просто избавился от QGroupBox и играл с макетами, пока не понял. – R01k

 Смежные вопросы

  • Нет связанных вопросов^_^