Заставить QListWidget заполнить QFormLayout

Я использую QT4 Designer, и его макет выглядит примерно так:

QWidget
  QVBoxLayout
    QFormLayout
      QLineEdit
      QListWidget
      QPushButton

Каждый элемент управления находится в отдельной строке.

Я выполнил трюк с назначением макета, чтобы все соответствовало родительскому, и если я уменьшу высоту, QListWidget сжимается, как и ожидалось , но если я увеличу высоту, QWidget.geometry.Height никогда не превысит 192. Vertical Policy установлен на Expanding, а maximumSize.Height равно 16777215, но никакая другая политика, похоже, не позволяет QListWidget расти. Однако ширина растет правильно.

Какая настройка мне не хватает? Должен ли я вместо этого прикрепить QPushButton к нижней части QFormLayout, и если да, то как?


person Ken Y-N    schedule 12.03.2018    source источник
comment
вы можете предоставить минимальный воспроизводимый пример своей проблемы.   -  person eyllanesc    schedule 12.03.2018


Ответы (1)


Что ж, я нашел свой собственный ответ - я выбрал QFormLayout, щелкнул правой кнопкой мыши и выбрал Lay out/Lay Out in a Grid, и все встало на свои места! Итак, новая рабочая иерархия:

QWidget
  QVBoxLayout
    QGridLayout  <<-- Changed from QFormLayout
      QLineEdit
      QListWidget
      QPushButton
person Ken Y-N    schedule 12.03.2018