2011-05-25 77 views
4

以下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() 

致谢:我使用网上其他人的代码创建了上述代码。

回答

6

你应该直接调用image.set_from_file而不是创建pixbuf和pixmap。至于处理大小调整,我通过直接使用gtk.DrawingArea,使用configure信号获取绘图区域的高度和宽度,以及使用cairo在整个表面上绘制它来完成一次。但是也可能有一种使用gtk.Image的方法。

相关问题