2010-09-21 12 views
11

Mit dem Qt Designer habe ich ein paar QFrames erstellt, von denen jeder ein horizontales Layout hat. Ihr Stylesheet behauptet, dass sie keinen Rand oder Padding haben sollten. Dies bedeutet, dass sowohl in der Qt Designer-Ansicht als auch im Endergebnis kein Platz zwischen den QFrames zu sehen ist.Qt Designer; Schwierigkeiten beim Platzieren von Widgets im richtigen Elternteil

Mit Drag-and-Drop kann ich Widgets in das Fenster platzieren, es zeigt eine blaue Linie, wo es platziert wird (in einem Layout). Es ist jedoch unmöglich, einen QFrame zu einem QFrame-Elternelement hinzuzufügen, das ich nicht sehen kann (und somit auf ihm aufsetze). Es gibt auch einen Baum auf der rechten Seite, aber fallen auf den übergeordneten macht es gehen automatisch in einem der Childs ...

Beispiel, ich habe dieses Setup:

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

einen neuen Rahmen hinzufügen, was auch immer ich versuche, gibt mir:

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

Aber ich will wirklich:

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

gibt es eine Funktion, die ich haven habe ich entdeckt, um neue Widgets genau zu platzieren?

Antwort

4

Sie können das Objektinspektorfenster verwenden, aber Sie scheinen nicht in der Lage zu sein, in einen QFrame mit einem gesperrten Layout einzufügen.

So Ihr Layout gegeben:

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

Wählen QFrame D im Objektinspektor Fenster und schneiden Sie es, klicken Sie rechts QWidget und brechen das Layout (ctrl-0), dann einfügen. Dann wenden Sie das Layout erneut an.

+2

Ändern von Layouts und Hinzufügen von Frames und Widgets kann definitiv ein Schmerz sein. Je nach dem, was Sie ändern möchten, ist es normalerweise erforderlich, das Layout zu brechen. Als Trick verwende ich manchmal Designer, um ein temporäres Formular/Widget zu erstellen. Dies kann wie eine Zwischenablage zum Ausschneiden und Einfügen von Bauteilgruppen vor und zurück wirken. –

+0

Das funktioniert ja, danke. Es macht das Layout für QWidget auf diese Weise rückgängig, die ich neu konfigurieren muss, oder ist das unvermeidlich? –

+0

@Arnold, ja, das funktioniert gut, danke! –

5

Eine Problemumgehung, die ich verwendet habe, besteht darin, das Widget auszuwählen, dem ich hinzufügen möchte, einen Rand zum Layout dieses Widgets hinzuzufügen, das Widget per Drag & Drop zu ziehen und dann den Rand wieder zu entfernen. Auf diese Weise bekomme ich es zumindest im richtigen Widget.

+0

Ich hatte dieses Problem mit Layouts ineinander, so dass die andere Antwort nicht funktionierte. Danke dafür! –

+6

Bah oder einfach das XML bearbeiten. Ich bin vom Designer wirklich enttäuscht. – Nils

0

In Qt Creator 4.3 fand ich es auch schwierig, einen Gegenstand in ein Layout zu ziehen, das noch keine Gegenstände hat.

Der einfachste Weg, um es zum Laufen zu bringen, ist die Layout zum Formular hinzufügen. Ziehen Sie dann Ihren Artikel von der Toolbox auf das Layout in der Object Inspecter Window. Welches wird den Artikel in die Layout hinzufügen.

Unbekannt, wenn dies für ältere Versionen von Qt Creator funktioniert.

Verwandte Themen