问题描述
|
以下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()
致谢:我使用网络上其他人的代码创建了以上代码。
解决方法
您应该直接调用image.set_from_file而不是创建pixbuf和pixmap。至于调整大小,我直接使用了gtk.DrawingArea,使用
configure
信号来获取绘图区域的高度和宽度,并通过expose-event
事件在整个表面上使用开罗进行了绘制。但是也有可能使用gtk.Image
。