问题描述
我正在尝试使用一些包含具有以下属性的图像 (pixbuf) 的按钮:
因此,按钮的高度必须根据其父级确定的宽度和包含的 pixbuf 的纵横比来选择。不幸的是,我无法找到一个干净的解决方案来实现这种行为。
我目前的做法是使用按钮的大小分配信号来缩放pixbuf。虽然如果我只使用按钮的分配,这种方法会起作用,但在上述情况下,我只想使用分配的宽度来确定给定 pixbuf 的纵横比使用的高度。因此,信号处理程序能够将图像的高度设置为违反按钮当前高度的高度。这是不合法的,因为在确定按钮所需的空间时应使用纵横比,而不是在已分配空间时使用。使用我的非法方法,按钮太小而无法显示图像,并且只有在用户交互以某种方式更新时才会调整到所需的大小(排队重绘或分配不能解决这个问题)。
我想使用一种方法,我使用将分配给按钮的宽度来确定分配前的高度。我找不到有用的信号来这样做,因为首选大小等仅设置为特定值,而据我所知,无法链接到某些信号。
另一种方法是使用 AspectFrame。我真的不想使用它,因为它增加了额外的复杂性,因为每次加载图像时都必须设置它的比率,只是为了启用按钮的动态高度。 更新:它也不起作用,因为它会缩小以适应而不是扩展。
使用硬尺寸请求似乎不是一个好主意,因为宽度取决于父小部件。
我尝试对按钮进行子类化,但发现对于 Rust 绑定 gtk-rs 按钮当前不可子类化。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)