Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 4th, 2012  |  syntax: None  |  size: 2.50 KB  |  hits: 11  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/usr/bin/python
  2.  
  3. import pygtk
  4. pygtk.require('2.0')
  5. import gtk
  6.  
  7. class golden_crop_gtk:
  8.     def delete_event(self, widget, event, data=None):
  9.         """ Before quitting, print a message."""
  10.         print "Goodbye!"
  11.         gtk.main_quit()
  12.    
  13.     def select_file(self, widget, data=None):
  14.         """This launches the file selection dialog."""
  15.         dialog = gtk.FileChooserDialog("Open..",
  16.             None, gtk.FILE_CHOOSER_ACTION_OPEN,
  17.             (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
  18.             gtk.STOCK_OPEN, gtk.RESPONSE_OK))
  19.        
  20.         dialog.set_default_response(gtk.RESPONSE_OK)
  21.        
  22.         filter = gtk.FileFilter()
  23.         filter.set_name("All files")
  24.         filter.add_pattern("*")
  25.         dialog.add_filter(filter)
  26.        
  27.         # We only want image files
  28.         filter = gtk.FileFilter()
  29.         filter.set_name("Images")
  30.         filter.add_mime_type("image/png")
  31.         filter.add_mime_type("image/jpeg")
  32.         filter.add_mime_type("image/gif")
  33.         filter.add_pattern("*.png")
  34.         filter.add_pattern("*.jpg")
  35.         filter.add_pattern("*.gif")
  36.         filter.add_pattern("*.tif")
  37.         filter.add_pattern("*.xpm")
  38.         dialog.add_filter(filter)
  39.        
  40.         response = dialog.run()
  41.         if response == gtk.RESPONSE_OK:
  42.             print dialog.get_filename(), 'selected'
  43.             self.selected_file = dialog.get_filename()
  44.        
  45.         elif response == gtk.RESPONSE_CANCEL:
  46.             print 'Closed, no files selected'
  47.             self.selected_file = ""
  48.            
  49.         dialog.destroy()
  50.    
  51.     def __init__(self):
  52.         """Constructor for the main class."""
  53.         self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
  54.        
  55.         # When there is a "delete event" emitted, execute the delete_event
  56.         # function.
  57.         self.window.connect("delete_event", self.delete_event)
  58.    
  59.         # Border width (padding)
  60.         self.window.set_border_width(10)
  61.        
  62.         # Define the button and what happens when it gets clicked
  63.         self.file_select_button = gtk.Button("Select file")
  64.         self.file_select_button.connect("clicked", self.select_file, None)
  65.        
  66.         # Add the button to the window, show the button, and show the window
  67.         self.window.add(self.file_select_button)
  68.         self.file_select_button.show()
  69.         self.window.show()
  70.        
  71.     def main(self):
  72.         """ Sends GTK into the main loop."""
  73.         gtk.main()
  74.    
  75. crop = golden_crop_gtk()
  76. crop.main()