如何获得widget的尺寸

发布于 2022-08-15 15:07:11 字数 65 浏览 10 评论 5

如何获得toolbar, image等控件的当前尺寸, 使用gtk_widget_size_request试过,得到的不是当前尺寸

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

七色彩虹 2022-08-17 07:38:40

原帖由 keensword007 于 2008-9-10 12:54 发表
我就是希望得到实际的尺寸,比如说,当我调整窗口大小时,我希望能够得到窗口中image的大小,这样我就可以根据image的尺寸对其中的图像进行缩放.但是在窗口调整大小触发的事件中我只能得到当前窗口的大小

你的思路一开始就错了。
gtk里有自己的size negotiation。
每个GtkWidget在决定自己大小的时候会首先查看所有child的size request,通过child的request决定自己的request。
然后一直传到最顶层窗口,它根据所有子widget的size_quest和自己的default size,根据自身的是gtkbin还是gtkvbox还是gtkhbox,使用gtk_widget_size_allocate分配每个child的大小。
然后再一层层size_allocate下去。

我不知道gtk里有没有你需要的GtkContainer,没有的话,自己从GtkBin派下来一个widget,重载size_quest和size_allocate,
在这两个函数里设置image的大小。

参考 http://developer.gnome.org/doc/G ... SEC-SIZENEGOTIATION

待天淡蓝洁白时 2022-08-17 07:38:38

我就是希望得到实际的尺寸,比如说,当我调整窗口大小时,我希望能够得到窗口中image的大小,这样我就可以根据image的尺寸对其中的图像进行缩放.但是在窗口调整大小触发的事件中我只能得到当前窗口的大小

无尽的现实 2022-08-17 07:27:38

gtk中默认的控件的大小?干嘛要用它默认的大小??在最开始的时候你自己给它定义一个大小,用gtk_widget_set_size_request ()函数来设置,然后大小你不就知道了,等到你想要变大或变小的时候你就给它变一下就好了。

黑寡妇 2022-08-17 07:16:15

看下

时光无声 2022-08-17 04:00:17

可以使用widget的allocation获得尺寸, 但是我在window的configure-event中获得尺寸,感觉不太对,需要事件完成后才会设置子元素,应该在什么事件中获得呢?

我的目的只有一个,就是在调整窗口大小时,将窗口中的image控件中的图片进行缩放,以适应窗口大小,但是不知道如何知道窗口分配给image的尺寸是多少

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文