The file selection widget is a quick and simple way to display a File dialog box. It comes complete with
, , and buttons, a great way to cut down on programming time.To create a new file selection box use:
filesel = gtk.FileSelection(title=None) |
To set the filename, for example to bring up a specific directory, or give a default filename, use this method:
filesel.set_filename(filename) |
To grab the filename text that the user has entered or clicked on, use this method:
filename = filesel.get_filename() |
There are also references to the widgets contained within the file selection widget. These are the filesel attributes:
filesel.dir_list filesel.file_list filesel.selection_entry filesel.selection_text filesel.main_vbox filesel.ok_button filesel.cancel_button filesel.help_button filesel.history_pulldown filesel.history_menu filesel.fileop_dialog filesel.fileop_entry filesel.fileop_file filesel.fileop_c_dir filesel.fileop_del_file filesel.fileop_ren_file filesel.button_area filesel.action_area |
Most likely you will want to use the ok_button, cancel_button, and help_button attributes to connect their widget signals to callbacks.
The filesel.py example program illustrates the use of the FileSelection widget. As you will see, there is nothing much to creating a file selection widget. While in this example the button appears on the screen, it does nothing as there is not a signal attached to it. Figure 9.14, “File Selection Example” shows the resulting display:
The source code for filesel.py is:
1 #!/usr/bin/env python 2 3 # example filesel.py 4 5 import pygtk 6 pygtk.require('2.0') 7 import gtk 8 9 class FileSelectionExample: 10 # Get the selected filename and print it to the console 11 def file_ok_sel(self, w): 12 print "%s" % self.filew.get_filename() 13 14 def destroy(self, widget): 15 gtk.main_quit() 16 17 def __init__(self): 18 # Create a new file selection widget 19 self.filew = gtk.FileSelection("File selection") 20 21 self.filew.connect("destroy", self.destroy) 22 # Connect the ok_button to file_ok_sel method 23 self.filew.ok_button.connect("clicked", self.file_ok_sel) 24 25 # Connect the cancel_button to destroy the widget 26 self.filew.cancel_button.connect("clicked", 27 lambda w: self.filew.destroy()) 28 29 # Lets set the filename, as if this were a save dialog, 30 # and we are giving a default filename 31 self.filew.set_filename("penguin.png") 32 33 self.filew.show() 34 35 def main(): 36 gtk.main() 37 return 0 38 39 if __name__ == "__main__": 40 FileSelectionExample() 41 main() |