Czy istnieje sposób, aby właściwość layoutStretch zawsze była przestrzegana? Na przykład. Ustawiłem go na "1,3,2", ale potem widget (etykieta) w pierwszej części ("1" w "1,3,2") rozszerza się (gdy dodaje się więcej tekstu), a następnie racja 1: 3: 2 nie jest już przestrzegana. Oznacza to, że stosunek "1: 3: 2" zamienia się w coś bardziej przypominającego "3: 1: 3".Ustalanie rozmiaru układów
Odpowiedz
Powinieneś rzucić okiem na nieruchomości QWidget::sizePolicy
. Kontroluje, w jaki sposób układ respektuje jego dzieci podczas aktualizacji geometrii.
Więc co trzeba zrobić, to: Sprawdź układ ignorować poziome sizeHints z widżetów potomnych poprzez ustawienie poziome sizePolicy trzech widgetów dzieci do QSizePolicy::Ignored
:
QLabel *label = ...;
...
label->setSizePolicy(QSizePolicy::Ignored, label->sizePolicy().verticalPolicy());
(Drugi argument zapewni zasady wertykalne nie zostały zmienione przez to oświadczenie Należy oczywiście ustawić politykę rozmiaru każdego widżetu podrzędnego, przykładowy kod dotyczy tylko etykiety.)
Należy pamiętać, że zawartość layoutu musi być widżety; Myślę, że układom zagnieżdżonym nie można przypisać strategii rozmiaru (ale mogę się mylić). Przynajmniej przy użyciu QtDesigner, nie ma możliwości zastosowania polityki rozmiaru do samego układu (jeśli nie jest to układ widgetu). Zobacz komentarze, aby poznać szczegóły.
W QtDesigner można ustawić sizePolicy z widżetów potomnych tak:
Przed:
złączowe:
Wybierz elementy w layout:
Ustaw politykę rozmiar poziomy do „Ignorowany”:
Wynik:
- 1. ustalanie rozmiaru okna w vim
- 2. Ustalanie rozmiarów widżetów w układach projektantów QT
- 3. Ustalanie rozmiaru kontenera karuzeli w Angular-UI-Bootstrap
- 4. Ustalanie kolejności ścianką ggplot
- 5. Qt Tworzenie układów i dynamiczne dodawanie widgetów do układów
- 6. Ustalanie położenia klejnotów Ruby
- 7. Ustalanie uprawnień 2?
- 8. Ustalanie macierzy transformacji
- 9. Ustalanie stałości funkcji elementu
- 10. Ostrze Laravel - wiele układów?
- 11. nanoc i wiele układów
- 12. Zmiana domyślnych układów domyślnych
- 13. Ustalanie czasu dla czystych funkcji
- 14. Ustalanie zależności Piekło z kompozytorem
- 15. ustalanie wartości punktów na wykresie
- 16. Ustalanie minimalnej wartości maksymalnej klastra?
- 17. Ustalanie daty równości w JavaScript
- 18. Ustalanie kolejności dokumentów z węzłów
- 19. Biblioteka układów grafów Open Source
- 20. Tworzenie układów kołdra w UICollectionView
- 21. Zalecane szerokości dla układów elastycznych
- 22. Wiele menedżerów układów w Javie
- 23. Android - powszechne techniki skalowania układów ekranów
- 24. Ustalanie liczby wierszy repeatera w asp.net
- 25. Ustalanie maksymalnej liczby grupowej w Doctrine
- 26. Ustalanie optymalnej reguły nauki dla SSN
- 27. ustalanie zestawu znaków tabeli/bazy danych?
- 28. Ustalanie częstotliwości z danych sygnału w MATLAB
- 29. C# zmienne ustalanie zakresu nie jest spójne?
- 30. Ustalanie kierunku w iPhonie jak w kompasie?
w QtDesigner Kliknąłem na jednej z 3 widgetów verticalLayout że są trzy obiekty w widgecie horizontalLayout (ten, który ma układ 1: 3: 2 layoutStretch). Jednak nie ma sizePolicy, tylko layoutLeftMargin, layoutTopMargin, layoutRightMargin, layoutBottomMargin, layoutSpacing, layoutStretch i layoutSizeConstraint. –
@DavidDoria Dodałem zrzuty ekranu dla QtDesigner. – leemes
Przepraszam, wydaje mi się, że wciąż nie było jasne. Mam widżety verticalLayout, które są dziećmi widżetu HorizontalLayout. Te widżety wertykalne to te, które chcę naprawić, ale nie mają one właściwości "sizePolicy". –