Fileselection window of Gnome/GTK

Alistair Thomas astavale at yahoo.co.uk
Thu Jan 16 19:57:40 CET 2003


In article <b0597d$ltf34 at imsp212.netvigator.com>, "Wouter van Marle"
<wouterm at spammers-unite-here.com> wrote:

> What I have done so far: in glade I created a file selection widget, and
> connected the OK and Cancel butten to signal when <clicked>. Then in my
> python program I open the file selection widget, and connect the two
> signals.
> Now this simply does not work

Here's a quick copy and paste of some code which I use, hopefully give you
some clues. Although the code probably  isn't enough to work:

from GUI import window, dialogues

a = dialogues.file_selector ( 'Open', self.specfile.localsource )
if hasattr ( a, 'filename'):
	self.specfile.source[ b ].location = a.filename

----------
window module
----------
import gtk, gnome.ui, libglade

class open ( libglade.GladeXML ) :
	"""Creates an open window.
It assumes the project has one glade file which contains all
the window's layouts. Specify this file's location using the
'glade_file' attribute of the window module.
To create the open window object specify the window's name
as held in the glade file."""

	def __init__ (self , window ):
		libglade.GladeXML.__init__ ( self , glade_file , window )
		self.window = window

	def add_handlers ( self , handlers ):
		"Add dictionary of signal handlers to the open window"
		self.signal_autoconnect ( handlers )

	def remove_handlers ( self , handlers ):
		"Is this useful or even possible?"
		pass

	def close ( self ):
		self.get_widget ( self.window ). destroy ()

------------
dialogues module
------------
import gtk, gnome.ui, libglade, GDK
import window

def about ( widget = None ):
	window.open( "about" )

class file_selector ( window.open ):

	def __init__ ( self , type = "Browse", filename = "" ):
		window.open.__init__ ( self , "fileselector" )
		a = self.get_widget ( "fileselector" )
		a.set_title ( type )
		if type== "Open":
			a.hide_fileop_buttons ()
		if type== "Save As":
			a.show_fileop_buttons ()
		self.add_handlers ( {     "ok_button" : self.ok_button ,
					"cancel_button" : self.cancel_button,
					"closed" : self.closed } )
		a.set_filename ( filename )
		gtk.mainloop ()

	def ok_button ( self , widget ):
		a = widget.get_toplevel ( )
		self.filename = a.get_filename ()
		self.close ()

	def cancel_button ( self , widget ):
		self.close ()

	def closed ( self, widget = None ):
		gtk.mainquit ()




More information about the Python-list mailing list