2011-05-25 87 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的方法。

相關問題