我有一个 PyGTK 应用程序需要加载未知大小的图像,但是我遇到的问题是,如果图像非常大或非常小,窗口布局会变得扭曲并且难以使用。我需要某种方法使图像自动缩放以适合其父窗口小部件。不幸的是,经过一些研究后,似乎没有内置或其他代码可以满足我的要求。
我怎样才能写一些东西来做到这一点?我本以为有人已经为此编写了一些代码;有什么我错过的吗?
您可以使用 widget.get_allocation() 找出父窗口小部件的大小,并使用 pixbuf.scale_simple 缩放图像,如下所示:
allocation = parent_widget.get_allocation()
desired_width = allocation.width
desired_height = allocation.height
pixbuf = gtk.gdk.pixbuf_new_from_file('your_image.png')
pixbuf = pixbuf.scale_simple(desired_width, desired_height, gtk.gdk.INTERP_BILINEAR)
image = gtk.image_new_from_pixbuf(pixbuf)
如果您希望每次调整窗口大小时图像都缩放,则必须将上面的代码(或类似的代码,以避免每次都从磁盘加载图像)放在连接到父窗口小部件的 size_allocate 信号的函数中。为了避免无限循环,请确保放入小部件中的图像不会再次改变其大小。
参考:
-
如何调整图像大小(我想你已经访问过)
- 关于“调整大小”事件
- Stack Overflow 中有关调整大小的其他链接
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)