2015-02-03 15 views
13

Wenn ich eine Taste drücke, öffne ich einen Dialog, wo der Benutzer Dinge auswählt und am Ende 'Ok' drückt. Ich möchte einen Splitter in diesem Dialog. Linker Bereich zeigt Baum und rechts zeigt etwas anderes. Wie mache ich das richtig?Wie man QSplitter in Qt Designer verwaltet

Von Qt Beispiel selbst:

QSplitter *splitter = new QSplitter(parent); 
QListView *listview = new QListView; 
QTreeView *treeview = new QTreeView; 
QTextEdit *textedit = new QTextEdit; 
splitter->addWidget(listview); 
splitter->addWidget(treeview); 
splitter->addWidget(textedit); 

So in diesem Beispiel Splitter wird ohne Dialogressource erstellt. Wenn ich auf diese Weise erstellen müsste, müsste ich alle meine Steuerelemente im Code und nicht in Qt Creator erstellen.

Was ist der richtige Weg, wenn ich andere Steuerelemente auf dem Bildschirm brauche?

Antwort

28

Sie können einfach erstellen Splitter Artikel in Qt Designer enthält:

  1. Erster Platz Ihre Widgets auf Ihrem Dialog oder Widget in Designer

  2. Wählen Sie die Widgets (Sie nicht in einem Layout sein sollte) dass Sie in einem Splitter sein (von CTL halten und sie anklickt)

  3. Rechtsklick auf ein ausgewähltes Widget und aus Layout- Menü wählen Legen Sie horizontal in Splitter oder Legen Sie vertikal in Splitter.

  4. Nun wenden Sie ein Raster-Layout auf den Dialog und alles sollte in Ordnung sein.

enter image description here

+1

Dank dieser hat super funktioniert, aber mein splliter ist zwischen Baum und widget: Sie würden so etwas in Objektinspektor Ansicht sehen. Der Baum nimmt fast 80% der Breite ein. Ich sehe nichts in TreeView/Widget-Eigenschaften, die dazu führen können, irgendwelche Tipps? Ich möchte, dass der Baum wie 30% und 70% zum Widget geht. – zar

+1

Siehe diesen Beitrag: http://StackOverflow.com/Questions/25063003/How-To-Initialize-the-Splitter-Handle-Position-in-Qt/25063164#25063164 – Nejat

+0

Das würde wahrscheinlich erfordern die Einstellung der Stretch-Faktoren –

0

Sie können Ihre Steuerelemente weiterhin in einer .ui-Datei mit dem Qt Designer (in Qt Creator integriert) erstellen. Fügen Sie in Qt Designer ein QWidget Objekt zu Ihrem Dialog hinzu. Dann können Sie aus der abgeleiteten QDialog-Klasse direkt in Ihrem Konstruktor Ihren QSplitter mit dem Objekt QWidget als Elternobjekt erstellen.

Auf diese Weise können Sie alle außer dem Splitter-Objekt aus Qt Designer erstellen.

Ich denke, es ist auch möglich, die QSplitter (wie Sie ein QButton, QCheckBox ... erstellen) Element direkt von Qt Designer erstellen können.