2010-09-21 8 views
11

Używając Qt Designer, stworzyłem kilka QFrame w sobie nawzajem, każdy ma poziomy układ. Ich arkusz stylów mówi, że nie powinny mieć marginesu ani obicia. Oznacza to, że w widoku Projektanci Qt, jak również w końcowym wyniku, nie widać spacji między ramkami QFrame.Projektant Qt; Trudności z umieszczaniem widgetów w prawym rodzicu

Posługując się metodą "przeciągnij i upuść" mogę umieszczać widżety w oknie, wyświetla niebieską linię, w której zostanie umieszczony (w układzie). Jednak nie można dodać kolejnej ramki QFrame do rodzica QFrame, którego nie widzę (i tym samym upuszczam). Istnieje również drzewo w prawym panelu, ale spada na rodzica sprawia, że ​​automatycznie przejść w jednym z Childs ...

przykład mam tej konfiguracji:

 
QMainWindow 
- QWidget 
    - QFrame (parent) 
    - QFrame (child) 
    - QFrame (child) 

Dodanie nowej ramki, cokolwiek próbuję, daje mi:

 
QMainWindow 
- QWidget 
    - QFrame (parent) 
    - QFrame (child) 
    - QFrame (child) 
    - QFrame (new child) 

Ale naprawdę chcę:

 
QMainWindow 
- QWidget 
    - QFrame (parent) 
    - QFrame (child) 
    - QFrame (child) 
    - QFrame (new parent) 

Czy istnieje funkcja I haven odkryto, że dokładnie umieszcza nowe widżety?

Odpowiedz

4

Można użyć okna Inspektora obiektów, ale nie można go wkleić w ramce QFrame z zablokowanym układem.

Więc biorąc pod uwagę układ:

QMainWindow 
- QWidget 
    - QFrame (A) 
    - QFrame (B) 
    - QFrame (C) 
    - QFrame (D) 

Wybierz QFrame D w oknie Inspektor obiektów i przeciąć go, kliknij prawym przyciskiem QWidget i rozbić układ (Ctrl-0), a następnie wkleić. Następnie ponownie zastosuj układ.

+2

Zmiana układu i dodawanie ramek i widżetów z pewnością może być uciążliwa. Łamanie układu jest zwykle wymagane w zależności od tego, co próbujesz zmienić. Jako sztuczkę, czasami używam projektanta, aby utworzyć tymczasowy formularz/widget. Może to działać jak schowek do wycinania i wklejania grup komponentów w tę iz powrotem. –

+0

To działa tak, dziękuję. W ten sposób cofa się układ QWidget, który muszę ponownie skonfigurować, czy jest to nieuniknione? –

+0

@Arnold, tak, że działa ładnie, dziękuję! –

5

Jednym z rozwiązań, których użyłem, jest wybór widgetu, który chcę dodać, dodanie marginesu do układu tego widgetu, przeciągnięcie i upuszczenie widgetu, a następnie ponowne usunięcie marginesu. W ten sposób przynajmniej dostaję go we właściwym widżecie.

+0

Miałem problem z umieszczaniem układów wewnątrz siebie, więc druga odpowiedź nie zadziałała. Dzięki za to! –

+6

Bah lub po prostu edytuj XML. Jestem bardzo rozczarowany Projektantem. – Nils

0

W Qt Creator 4.3 Zauważyłem również, że trudno jest przeciągnąć element do układu, który nie zawiera jeszcze żadnych elementów.

Najprostszym sposobem na sprawne działanie jest dodanie do formularza numeru Layout. Następnie przeciągnij element z Toolbox na układ w Object Inspecter Window. Który doda element do Layout.

Nieznane, jeśli działa to w starszych wersjach starszych wersji programu Qt Creator.