Seite 1 von 1
IconView Icons umbenenen
Verfasst: Mittwoch 7. Oktober 2009, 08:55
von Andyh
Hallo
Wie kann ich bei einem Iconview statt des Textes ein Entry Anzeigen lassen,
wie beim Nautilus wenn man auf einem Icon "F2" drückt?
Gruß
Andyh
Verfasst: Mittwoch 7. Oktober 2009, 11:26
von ms4py
Deine Beschreibung ist äußerst unklar, aber IMO suchst du das:
PyGTK Referenz hat geschrieben:gtk.IconView.set_cursor
def set_cursor(path, cell=None, start_editing=False)
start_editing : if True the specified cell should start being edited
Verfasst: Montag 12. Oktober 2009, 10:20
von Andyh
Hallo
Danke für deine Antwort!
Leider komme ich mit dem zweiten Argument nicht klar ("cell"), ich habe keine Ahnung woher ich den "cell Renderer" bekommen kann wenn ich "F2" drücke zum umbenennen der Icons. Da gibt es zwar "get_item_at_pos" das gibt den "cell Renderer" zurück, aber da weiß ich wieder nicht wie ich an die Position des Markieren Icons kommen.
Gruß
Andyh
Verfasst: Montag 12. Oktober 2009, 20:20
von ms4py
``cell`` benötigst du doch theoretisch gar nicht?!
Und für den ``path`` gibt es:
gtk.IconView.get_selected_items
def get_selected_items()
Returns : a list of the paths of the selected icons.
Hier mal Beispielcode:
Code: Alles auswählen
icon_view.set_selection_mode(gtk.SELECTION_SINGLE)
sel_items = icon_view.get_selected_items()
if len(sel_items) == 1:
icon_view.set_cursor(sel_items[0], start_editing=True)
else:
# no selection
P.S. Alles ungetestet der Referenz entnommen. Poste bitte eventuelle Fehler.
Verfasst: Dienstag 13. Oktober 2009, 12:00
von Andyh
Hallo
Danke nochmal für deine Antwort!
Code: Alles auswählen
import gtk
def rename(accel_group, accel, keyval, modifier):
print "rename"
sel_items = i.get_selected_items()
if len(sel_items) == 1:
print sel_items
i.set_cursor(sel_items[0], start_editing=True)
w = gtk.Window()
i = gtk.IconView()
i.set_selection_mode(gtk.SELECTION_SINGLE)
model = gtk.ListStore(str, gtk.gdk.Pixbuf)
i.set_model(model)
i.set_text_column(0)
i.set_pixbuf_column(1)
i.set_columns(-1)
i.set_item_width(100)
pixbuf = gtk.gdk.pixbuf_new_from_file("/usr/share/icons/gnome/scalable/mimetypes/audio-x-generic.svg")
model.append(["Test", pixbuf])
w.add(i)
accelgroup = gtk.AccelGroup()
key, modifier = gtk.accelerator_parse("F2")
accelgroup.connect_group(key, modifier, gtk.ACCEL_LOCKED, rename)
w.add_accel_group(accelgroup)
w.show_all()
gtk.main()
Es passiert beim drücken von "F2" nichts.
Gruß
Andyh
Verfasst: Dienstag 13. Oktober 2009, 13:06
von ms4py
Wird die Methode überhaupt aufgerufen? Kenn mich mit den Tastatureingaben nicht aus.
Ansonsten starte die Funktion mal testweise über einen extra Button.
Verfasst: Dienstag 13. Oktober 2009, 13:10
von Andyh
Hallo
Die Funktion wird aufgerufen, die Ausgabe über die zwei print's sieht so aus:
rename
[(0,)]
Gruß
Andyh