2011-03-22 29 views
4

我正在寫使用gtkmm的應用程序。無法獲取一個小部件的高度/寬度 - gtkmm的

我寫了一個簡單的窗口小部件類,我只想在某些情況下顯示在應用程序的主窗口中。否則,我希望標籤「禁用」可見。

爲了實現我將Widget和標籤都打包到一個VBox中,我顯示()和隱藏()它們以便交換它們。

但是,自定義小部件遠遠大於標籤,所以我需要調整標籤的位置

我知道我可以使用label.set_size_request(x,y),並且它可以工作,當我手動鍵入尺寸時。但我知道,該控件可以在大小上有點不同,這取決於GTK主題一個用途等

我很想設置標籤尺寸完全相同 *作爲窗口小部件具有。但是,使用widget.get_height()* 不起作用- 它總是返回1


也許一個線索將是我做到這一點從主窗口的構造函數中。

回答

7

我沒有做過的gtkmm的多少,更PyGTK的。但我認爲要從get_width/get_height獲得有意義的值,一個窗口小部件必須是實現的,這是一個可視的X窗口。我猜你的小部件在窗口構造函數中還不可見。

我建議你使用gtk.Notebook,而不要隱藏其標籤。然後gtk.Notebook將控制你的標籤和你的自定義小部件的大小。

+0

哦,謝謝,筆記本招是酷。 – rafalcieslak 2011-03-23 19:31:37