Margin QDialog

Vous voulez de l'aide ? Postez ici :)
Post Reply
Violette
Posts: 119
Joined: 10 Aug 2014, 17:42

Margin QDialog

Post by Violette »

Hello,
étant actuellement en pleine création d'un thème pour une petite appli test, je me heurte à un petit soucis de margin.

Le widget principal est un QDialog.

Image

Situation 1 : margin 0 sur la groupbox.
Situation 1 : margin-bottom -20px sur la groupbox.
Situation 3 : Celle désirée.

Il y a donc un padding sur le qdialog, malheureusement impossible de le mettre a 0. J'ai bien cherché mais pas trouvé de réponse qui fonctionne :S Avez-vous un idée ?

Image

De même, ici, il y a des margin: 0 et des padding: 0 pour les 3 widgets, la border de qgroupbutton et des qlabel/qpushbutton devrais donc être cote à cote tel une bordure faisant 2 px. Mais non, il y a toujours et encore cette espace, le même, toujours et encore là. :S

Je ne sais absolument pas comment l'enlever. Le problème est que tout ceci prend de la place pour rien au final, et fait carrément moche.

Voici le code de la chose :

Code: Select all

var buttonGroup = new QGroupBox;
buttonGroup.setStyleSheet('QGroupBox {border: 1px solid red; margin: 0px; padding: 0px;/*padding-bottom: -20px;*/} QPushButton {border: 1px solid red; margin: 0px; padding: 0px;} QLabel {border: 1px solid red; margin: 0px; padding: 0px;}');
var buttonLayout = new QGridLayout;
buttonLayout.addWidget(author, 0, 0);
buttonLayout.addWidget(buttonBox, 0, 1);
buttonGroup.setLayout(buttonLayout);
Remplacer buttonGroup = QGroupBox par buttonGroup = QWidget ne change absolument rien.

Merci.
User avatar
Jmgr
Admin
Posts: 1650
Joined: 07 Dec 2005, 15:45
Contact:

Re: Margin QDialog

Post by Jmgr »

Le layout a également une propriété spacing : http://qt-project.org/doc/qt-4.8/qlayou ... acing-prop
As-tu essayé de changer celle-ci ?
"My software never has bugs. It just develops random features."
Violette
Posts: 119
Joined: 10 Aug 2014, 17:42

Re: Margin QDialog

Post by Violette »

Ah ouais merci, j'ai fini par trouver et c'est presque elle. La soluce ici.

Explication pour ceux qui chercheraient aussi :

spacing gère l'espace entre les différents widgets enfant présents dans un widget parent et uniquement entre eux ce qui ne fonctionnait pas dans mon cas car il n'y a qu'une ligne de widgets enfant (qlabel et 2 qpushbutton) dans mon widget parent (qgroupbox). Si ces 3 widgets avaient été positionné dans un axe vertical au lieu d'horizontal, ils auraient été collé entre eux et uniquement entre eux avec un spacing(0).

Mais spacing ne gère pas le margin présent entre le widget parent et les widgets enfants, pour cela il faut utiliser setContentsMargins.
Car ouais l'espace présent au contour de la fenêtre est un margin (espace extérieur au bloc) du qdialog et non un padding (espace intérieur au bloc) comme on pourrait le penser.
Post Reply