在PyGTK中,如何简单地显示PNG文件?
下面的PyGTK代码可以在一个窗口中显示一个PNG文件。
有没有更简单或者更好的方法来显示这个PNG文件,比如使用gtk.DrawingArea?比如说,怎么调整这个文件的大小呢?
import gtk
import pygtk
pygtk.require('2.0')
class Gui:
def __init__(self):
# Create an Image object for a PNG file.
file_name = "file.png"
pixbuf = gtk.gdk.pixbuf_new_from_file(file_name)
pixmap, mask = pixbuf.render_pixmap_and_mask()
image = gtk.Image()
image.set_from_pixmap(pixmap, mask)
# Create a window.
window = gtk.Window()
window.set_title("PNG file")
window.connect("destroy", gtk.main_quit)
# Show the PNG file in the window.
window.add(image)
window.show_all()
if __name__ == "__main__":
Gui()
gtk.main()
致谢:我使用了网上其他人的代码来创建上面的代码。
1 个回答
6
你应该直接调用 image.set_from_file,而不是先创建一个pixbuf和一个pixmap。至于如何处理调整大小的问题,我曾经直接使用过gtk.DrawingArea,通过configure
信号来获取绘图区域的高度和宽度,然后用expose-event
事件在整个区域上用cairo进行绘制。不过,也可能有办法使用gtk.Image
来实现。