da ich momentan nicht weiterkomme, wage ich es einmal, hier meine Anfängerfrage zu stellen:
Aufgabenstellung ist simpel: nach Auswahl eines Menüpunktes soll ein Dateiauswahldialog erscheinen und danach die Datei geöffnet werden. Mein Source-Code dazu:
Code: Alles auswählen
def execute(self, widget, data = None):
"""
executes the command. This method has to be overwritten
in sublclasses.
Parameters:
- widget: widget that triggers the command
- data: additional data
"""
chooser = gtk.FileChooserDialog("Open", self.getApplication().getMainWindow())
chooser.set_default_response(gtk.RESPONSE_OK)
chooser.add_button( gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
chooser.add_button( gtk.STOCK_OPEN, gtk.RESPONSE_OK)
filter = gtk.FileFilter()
filter.set_name("File")
filter.add_pattern("*.xml")
chooser.add_filter(filter)
response = chooser.run()
if response == gtk.RESPONSE_OK:
print chooser.get_filename(), 'selected'
Das klappt auch insofern, als der FileChooser geöffnet wird. Allerdings schließt er sich nicht, wenn man auf Ok oder Abbrechen klickt. Das ist mein Problem.
Führe ich das Code-Fragment in einem eigenen kleinen Programm/Skript aus, ohne dass darin vorher gtk.main() aufgerufen wird, funktioniert das bestens.
Wo ist mein Denkfehler?
Danke, Jochen