Układ automatycznie rozwijany za pomocą Qt-Designer


217

Korzystam z Qt Designer.

Chcę utworzyć taki, QVBoxLayoutktóry będzie się automatycznie rozwijał, aby wypełnić całe okno.

Układ QVBoxLayoutpozostałości pozostaje ustalony.

Jak mogę sprawić, QVBoxLayoutaby okno rozszerzyło się i wypełniło całe okno przez projektanta?


Jeśli chcesz tylko użyć układu w Qt Designer, zapoznaj się z

Odpowiedzi:


366

Po utworzeniu QVBoxLayoutw Qt Designer, kliknij prawym przyciskiem myszy tło widżetu / okna dialogowego / okna (nie QVBoxLayoutwidżetu nadrzędnego, ale widżet) i wybierz Układ -> Układ w siatce u dołu menu kontekstowego. QVBoxLayoutPowinien rozciągać, aby pasowały do rozmiaru okna i będzie automatycznie gdy cała okno jest zmieniany.


6
Dziękuję, szukałem również rozwiązania tego problemu.
Simon H.

35
W rzeczywistości nie trzeba wcale tworzyć układu siatki. Zamiast samodzielnie tworzyć QVBoxLayout, usuń zaznaczenie wszystkich elementów i kliknij tło widżetu. Następnie wybierz Układ -> Układ w pionie.
Michal Kottman,

3
@Michal Kottman: To działa tylko w czasie projektowania. Nie zmieni układu, gdy użytkownik zmieni rozmiar okna w czasie wykonywania.
Jay

5
Zarówno siatka, jak i układ pionowy działają dla mnie w projektowaniu i środowisku wykonawczym.
AndiDog,

2
Chciałbym dodać trochę szczegółów: jeśli chcesz dodać samonapinający się układ do strony QTabWidget , tak naprawdę nie możesz kliknąć prawym przyciskiem myszy tła strony, ponieważ wybierzesz QTabWidget, a nie odpowiednią zakładkę. Musisz kliknąć prawym przyciskiem myszy etykietę zakładki, jak pokazano w oknie projektanta, a następnie wybrać Układ -> Układ w siatce
Emanuele Cipolla

15

Zgodnie z dokumentacją musi być ustawiony układ najwyższego poziomu.

Układ najwyższego poziomu jest niezbędny, aby mieć pewność, że rozmiar widżetów zmieni się poprawnie po zmianie rozmiaru okna. Aby sprawdzić, czy ustawiono układ najwyższego poziomu, wyświetl podgląd widgetu i spróbuj zmienić rozmiar okna, przeciągając uchwyt rozmiaru.

Możesz ustawić jeden, usuwając zaznaczenie i klikając prawym przyciskiem myszy sam formularz i wybierając jeden z układów dostępnych w menu kontekstowym.

Układy Qt


2

Próbowałem znaleźć właściwość „dopasuj do ekranu”, ale takiej nie ma.

Ale ustawienie „maximumSize” widżetu na „jakąś dużą liczbę” (jak 2000 x 2000) automatycznie dopasuje widżet do nadrzędnej przestrzeni widgetu.


6
Co dzieje się z tą techniką na MacBooku Pro z wyświetlaczem Retina (2880 x 1800)?
ta.speot.is

1
Po prostu ustaw maksymalną liczbę, którą zaakceptuje (która pokazuje mi Designer to 16777215) i powinna działać na dowolnym rozmiarze monitora.
andreb

0

Po dodaniu układu z co najmniej jednym widżetem wybierz okno i kliknij przycisk „Aktualizuj” programu QtDesigner. Interfejs zostanie przeskalowany w najbardziej zoptymalizowanym rozmiarze, a Twój układ będzie pasował do całego okna. Następnie podczas zmiany rozmiaru okna rozmiar zostanie zmieniony w ten sam sposób.


Uważam, że gdy użytkownik zmieni rozmiar całego okna, układ pionowy (a tym samym jego zawartość) rozciągnie się, aby pasować do niego. Nie obchodzi mnie, jak to wygląda w Qt Designer.
Elazar Leibovich

-7

Ustaw opcję HorizontalPolicy & VerticalPolicy dla elementów sterujących / widżetów na „Preferowane” .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.