Impossible d’obtenir la hauteur / largeur d’un widget – gtkmm

J’écris une application utilisant gtkmm.

J’ai écrit une classe de widget simple, que je veux afficher dans la fenêtre principale de l’application uniquement dans certains cas. Sinon, je voudrais qu’un label “désactivé” soit visible.

Pour ce faire, j’ai emballé le widget et l’étiquette dans un seul VBox, et je les affiche () et les cache () pour les échanger.

Cependant, le widget personnalisé est beaucoup plus volumineux que l’étiquette, donc je dois redimensionner un peu l’étiquette .

Je sais que je peux utiliser label.set_size_request (x, y), et ça marche, quand je tape les dimensions manuellement. Mais je suis conscient que le widget peut avoir une taille différente selon le thème Gtk utilisé, etc.

J’adorerais définir l’étiquette exactement la même taille * que le widget a. Cependant, l’utilisation de widget.get_height () * ne fonctionne pas – il renvoie toujours 1.


Peut-être un indice sera que je le fais depuis le constructeur de la fenêtre principale.

Je n’ai pas fait grand chose en gtkmm, plus en pygtk. Mais je pense que pour obtenir des valeurs significatives à partir de get_width / get_height , un widget doit être réalisé , ce qui get_height une fenêtre X visible pour visible. Et je suppose que vos widgets ne sont pas encore visibles dans le constructeur de fenêtres.

Je vous propose d’utiliser plutôt un gtk.Notebook, avec ses tabs masqués. Ensuite, gtk.Notebook contrôlera la taille de votre étiquette et de votre widget personnalisé.