Невозможно получить высоту / ширину виджета - gtkmm - PullRequest
5 голосов
/ 22 марта 2011

Я пишу приложение, используя gtkmm.

Я написал простой класс виджетов, который я хочу отображать в главном окне приложения только в некоторых случаях. В противном случае я бы хотел, чтобы ярлык «отключен» был видимым.

Для этого я упаковал виджет и метку в один VBox, и я показываю () и скрываю () их, чтобы поменять их местами.

Однако пользовательский виджет намного больше, чем метка, поэтому Мне нужно немного изменить размер метки .

Я знаю, что могу использовать label.set_size_request (x, y), и это работает, когда я печатаю размеры вручную. Но я знаю, что размер виджета может немного отличаться в зависимости от используемой темы Gtk и т. Д.

Я бы хотел установить метку точно такого же размера *, как у виджета. Однако использование widget.get_height () * не работает - всегда возвращается 1.


Может быть, подсказка будет в том, что я делаю это из конструктора главного окна.

1 Ответ

7 голосов
/ 22 марта 2011

Я мало что сделал в gtkmm, больше в pygtk.Но я думаю, что для получения значимых значений от get_width / get_height, виджет должен быть реализован , который является X-окном, говорящим для видимого.И я думаю, что ваши виджеты еще не видны в конструкторе окна.

Я бы предложил вам вместо этого использовать gtk.Notebook, со скрытыми вкладками.Затем gtk.Notebook будет контролировать размер как вашей метки, так и вашего пользовательского виджета.

...