Bonjour,
je rencontre beaucoup de problèmes avec la création/optimisation des fichiers .ui du Designer. Je dois certainement mal utiliser ce dernier parce que pour obtenir un design à ma façon, j'en suis venu à coder (en général par copier/coller) directement les fichiers.ui dans un éditeur de texte.
Ici un exemple en cours de réalisation:
J'ai compris comment agrandir automatiquement le "centralWidget" à la taille de ma MainWindow. La gymnastique est un peu fastidieuse comparée au designer de Delphi et encore pire à celui de Lazarus. Mais chaque produit à ses spécificités... et j'essaie de comprendre celles de Qt Designer, où pour l'instant je n'ai pas investi énormément, il est vrai. Alors autant prendre de bonnes habitudes.
Ici, j'ai besoin de gérer 2 GridLayouts (MENU et CHANNEL) et ici le GridLayoutCHANNEL contient 5 QWebViews. Le GridlayoutMENU est encore plus compliqué.
J'ai essayé de réaliser l'ensemble à la souris.
Dans un premier temps, avec Qt Designer, à la souris, j'arrive assez facilement à créer le GridLayoutMENU (vide) et à le centrer dans le centralWidget avec 4 spacers.
Ensuite, je voudrais incorporer le gridLayoutCHANNEL dans la construction déjà réalisée et le mettre au même niveau de parenté que le GridLayoutMENU... Difficile à réaliser... en tous cas directement avec la souris (et les traits bleus, rouges...). Et encore pire - là c'est l'échec systématiquement- lorsque je veux placer mon premier QWebView ! Comment gère-t-on exactement les parentés à la souris ? Les widgets ajoutés se placent approximativement surtout quand des gridLayouts contigus sont vides...
J'ai essayé d'autre part un copier/coller d'un gridLayoutCHANNEL complètement finalisé d'une autre fenêtre mais qui ne contient que lui, vers mon actuel centralWidget et j'obtiens systématiquement un message d'erreur du Designer...
D'autre part, des tests de déplacement dans l'arbre des objets par copier/coller est interdit.
Bref, actuellement pour ne pas "errer",je pars du code généré avec le centralWideget et le GridLayoutMenu, ajoute le GridLayoutCHANNEL à la main et copie son contenu à partir d'une autre fenêtre... Ce faisant, un clean, qmake n'est pas suffisant pour réussir la compilation. Je dois effacer à la main le ui_mainwindow.h qui visiblement n'est pas re-généré lors du nettoyage/qmake.... ce qui me fait dire que je ne procède pas de la bonne façon.
Je suppose qu'il existe une autre manière de travailler, peut-être de la même manière que l'agrandissement de mon GridLayout principal à la taille de la fenêtre mais franchement, ce que j'ai essayé n'est pas convaincant.
Merci. Cordialement. Gilles
Partager