2010-11-24 20 views
0

J'ai besoin de calculer la largeur exacte de QGroupBox. J'ai la largeur de son enfant, mais j'ai du mal à calculer la largeur des décorations QGroupBox (ce qui signifie total_size - children_size - layout_space). La zone de groupe a exactement un enfant dans un QBoxLayout.Taille des décorations QGroupBox

Actuellement je le fais de manière suivante:

int width = layout()->contentsMargins().left() + 
      layout()->contentsMargins().right() + 
      6;          // <--- magic number 

width += child->maximumWidth(); 

J'ai obtenu le « 6 » de tâtonnement et il fonctionne sur le style de mon système (l'oxygène de KDE), mais je voudrais le faire en une manière indépendante de la plate-forme.

Y at-il un moyen de l'obtenir?

+0

Le nombre magique provient de la propriété layoutSpacing d'une mise en page. – Anton

Répondre

0

Avez-vous essayé d'utiliser QWidget::frameSize() sur QGroupBox? Cela devrait renvoyer la taille complète du widget, y compris toute décoration.

+0

Je l'ai essayé, mais il renvoie toujours QSize (100, 30). Peu importe quelle est la taille réelle de la boîte de groupe. – zarzych

+0

Que diriez-vous de 'frameGeometry()'? – BastiBen

+0

Désolé pour la réponse tardive - je n'ai pas remarqué votre commentaire. frameGeometry() renvoie QRect (0,0 100x30) donc c'est la même chose que frameSize(). – zarzych