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