web-dev-qa-db-fra.com

Comment gérer QSplitter dans Qt Designer

Lorsque j'appuie sur un bouton, j'ouvre une boîte de dialogue dans laquelle l'utilisateur sélectionne des éléments et appuie sur "OK" à la fin. Je veux un séparateur dans cette boîte de dialogue. Le volet gauche affichera l'arborescence et la droite affichera autre chose. Comment est-ce que je fais ça correctement?

De l'exemple Qt lui-même:

 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);

Ainsi, dans cet exemple, le séparateur est créé sans aucune ressource de dialogue. Si je dois créer de cette façon, cela signifierait que je dois également créer tous mes contrôles dans le code plutôt que Qt Creator.

Quelle est la bonne façon de procéder lorsque j'ai besoin d'autres commandes sur l'écran?

26
zar

Vous pouvez simplement créer un séparateur contenant des éléments dans Qt Designer:

  1. Placez d'abord vos widgets sur votre boîte de dialogue ou widget dans le concepteur (ils ne doivent pas être dans une mise en page)

  2. Sélectionnez les widgets que vous souhaitez placer dans un séparateur (en maintenant CTL et en cliquant dessus)

  3. Faites un clic droit sur un widget sélectionné et dans le menu Disposition sélectionnez Disposition horizontale dans Splitter ou Disposition verticale dans Splitter.

  4. Maintenant, appliquez une disposition de grille à la boîte de dialogue et tout devrait être OK. Vous verriez quelque chose comme ceci dans la vue Inspecteur d'objets:

enter image description here

60
Nejat

Vous pouvez toujours créer vos contrôles dans un fichier .ui à l'aide de Qt Designer (intégré à Qt Creator). Dans Qt Designer, ajoutez un objet QWidget à votre boîte de dialogue. Ensuite, à partir de la classe dérivée de QDialog, vous allez écrire, directement dans votre constructeur, créer votre QSplitter en utilisant l'objet QWidget comme parent.

De cette façon, vous pouvez créer tout sauf l'objet séparateur à partir de Qt Designer.

Je pense qu'il est également possible de créer l'élément QSplitter (comme vous pouvez créer un élément QButton, QCheckBox...) directement à partir de Qt Designer.

0
jpo38