无法获取小部件的高度/宽度 - gtkmm

Posted

技术标签:

【中文标题】无法获取小部件的高度/宽度 - gtkmm【英文标题】:Unable to get height/width of a widget - gtkmm 【发布时间】:2011-03-22 18:46:46 【问题描述】:

我正在使用 gtkmm 编写应用程序。

我编写了一个简单的小部件类,我只想在某些情况下显示在应用程序的主窗口中。否则,我希望标签“已禁用”可见。

为了实现这一点,我将小部件和标签打包到一个 VBox 中,并显示()和隐藏()它们以交换它们。

不过,自定义小部件远大于标签,所以我需要稍微调整一下标签的大小

我知道我可以使用 label.set_size_request(x,y),并且当我手动输入尺寸时它可以工作。但我知道,小部件的大小可能会有所不同,具体取决于使用的 Gtk 主题等。

我想设置标签 与小部件的尺寸完全相同 *。但是,使用 widget.get_height()* 不起作用 - 它总是返回 1。


也许一个线索是我在主窗口的构造函数中执行此操作。

【问题讨论】:

【参考方案1】:

我在 gtkmm 方面做得不多,在 pygtk 方面做得更多。但我认为要从get_width/get_height 获得有意义的值,必须实现小部件,这是一个可见的 X 窗口。而且我猜你的小部件在窗口构造函数中还不可见。

我建议您改用 gtk.Notebook,并隐藏其选项卡。然后 gtk.Notebook 将控制标签和自定义小部件的大小。

【讨论】:

以上是关于无法获取小部件的高度/宽度 - gtkmm的主要内容,如果未能解决你的问题,请参考以下文章

GTKmm - 无法将固定大小设置为 Gtk::Scale 小部件

如何在颤动中获取动态文本小部件的宽度?

gtkmm:将容器小部件(Box)中的元素堆叠在一起

根据父窗口小部件的宽度和高度放置一个自动调整大小的窗口小部件

GTKMM/C++11:如何从其他小部件中创建自定义复合小部件?

图像小部件的 Gtkmm 点击信号