2013-05-12 21 views
8

Mam formularz QT, który ma dosłownie setki widżetów i wszystkie te elementy pasują do ekranu na raz (w razie potrzeby). Muszę je ustawić jako małe. Formularz będzie miał ustalony rozmiar (bez możliwości zmiany rozmiaru), gdy zostanie użyty. Mogę zmienić rozmiary widżetów na żądaną wysokość/szerokość i użyć odpowiedniego (małego) rozmiaru czcionki, aby ich zasady dotyczące rozmiaru były "stałe" itd. Jednak, gdy tylko zacznę wprowadzać je do layoutów, dostają one do pewnego, znacznie większego minimum rozmiar. Dotyczy to zwłaszcza wysokości widżetów, ale czasami również wpływa ona na szerokość.Ustalanie rozmiarów widżetów w układach projektantów QT

Mój problem byłby rozwiązany gdybym wiedział jak to zrobić jedną z trzech następujących rzeczy:

  1. Zmień rozmiar domyślny minimalny układ (-y) dla widgetów.

  2. Wymuś układ, aby nie zmieniać rozmiarów widżetów.

  3. Użyj projektanta Qt, aby ładnie wyrównywać widżety w formatach podobnych do siatki bez używania układów.

Szukałem obszernie dokumentów projektanta Qt i SO, bezskutecznie.

pomoc jest mile widziana

Odpowiedz

5

Wpisz układy z QWidget::setFixedSize w kodzie (lub alternatywnie można ustawić stałą politykę rozmiarze dla każdego widgetu w projektanta) lub można użyć QLayout::setSizeConstraint

+2

bym spróbował ustawić widgety "polityka rozmiaru do" ustalona "(patrz pytanie). Ale to nie działa. Po zastosowaniu layoutu w Qt Designer widgety rosną. Później dowiedziałem się, że ustawienie minimalnych i maksymalnych rozmiarów widżetu (oprócz zasad dotyczących rozmiaru) wydaje się działać. Dziękuję za podpowiedź, bym spróbował mocniej ;-) – stefano

+0

Nie używałem tak dużo widżetów o ustalonym rozmiarze, ale jeśli dobrze pamiętam, to nie powinny rosnąć (rozmiar jest ustawiony na parametrze rozmiaru lub rozmiar dla setera QLayout), więc naprawiono rozmiar powinien wystarczyć, ale jeśli układ, w którym się znajdują, może rosnąć, przestrzeń między widżetami rośnie, więc czy jesteś pewien, że nie zaobserwowałeś tego zachowania (spróbuj z widżetami, które mają widoczne marginesy) lub masz niestandardowe widżety? W każdym razie sprawdź, czy możesz powtórzyć problem (utwórz aplikację testową, aby nie zepsuć swojej aplikacji), a może opublikuj ją tutaj, abyśmy mogli rzucić okiem. W każdym razie, cieszę się, że mój komentarz trochę pomógł. – Zlatomir

+0

@ stefano Wystarczyło ustawić minimalny rozmiar i maksymalny rozmiar w qtcreator dla odpowiedniego QWidget (który może być przyciskiem lub czymkolwiek innym). Ustalanie ograniczeń nie było konieczne – Anonymous