Chcę mieć mały, QFormLayout
który rośnie, aby wypełnić widżet nadrzędny.
Utworzyłem nowy plik .ui przy użyciu QWidget
szablonu w Qt Designer. Umieściłem QFormLayout
wewnątrz tego „okna”, a następnie umieściłem w nim kontrolki QFormLayout
.
To wszystko działa dość dobrze, ale QFormLayout
zawsze pozostaje w rozmiarze, który ustawiłem w Qt Designer. Chciałbym, QFormLayout
aby wypełnił swój widget nadrzędny i urósł / zmniejszył się wraz z nim.
Jak mogę to osiągnąć?
źródło
Okazało się, że niemożliwe było przypisanie układu do centralnego widgetu, dopóki nie dodałem pod nim co najmniej jednego dziecka. Następnie mógłbym podświetlić malutką ikonę czerwonym znakiem „wyłączone”, a następnie kliknąć układ na pasku narzędzi Projektanta u góry.
źródło
Przyjęta odpowiedź (jej obraz) jest błędna, przynajmniej teraz w QT5. Zamiast tego należy przypisać układ do obiektu / widgetu głównego (wskazując na wyżej wymieniony obraz, powinien to być
MainWindow
zamiastcentralWidget
). Zauważ również, że musisz mieć co najmniej jedenQObject
utworzony pod nim, aby to zadziałało. Zrób to, a Twój interfejs użytkownika będzie reagował na zmianę rozmiaru okna.źródło
Musisz zmienić domyślny typ układu obiektu QWidget najwyższego poziomu z typu Przerwij na inne typy układu (Układ pionowy, Układ poziomy, Układ siatki, Układ formularza). Na przykład:
Do czegoś takiego:
źródło