1

I'm working with GTK on Python. I have a scrolled window displayed on a window. I'm trying to add a key event that trigger an event when i press ENTER. So far I tried this in different configurations but the key-press-event is never detected :

def press_space(self,event):
        if event.keyval == gtk.keysyms.space:
            self.validation=True
def selection_window(self):
    win= gtk.Window()
    win.set_name("Choose a point")
    win.set_size_request(400, 300)
    win.connect("destroy", self.graceful_exit)

    vbox = gtk.VBox(spacing=3)
    win.add(vbox)

    sw = gtk.ScrolledWindow()
    sw.set_shadow_type(gtk.SHADOW_ETCHED_IN)
    sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)

    store = gtk.ListStore(str, str, object)

    # Create the list
    for site in self.controller.KnownSites:
        if len(site) > 3:
            coll = site[3]
        else:
            coll = ''
        store.append([site[0], coll, site])
    treeview = gtk.TreeView(store)

    renderer = gtk.CellRendererText()
    column = gtk.TreeViewColumn("Location", renderer, text=0)
    treeview.append_column(column)
    renderer = gtk.CellRendererText()
    column = gtk.TreeViewColumn("Collection", renderer, text=1)
    treeview.append_column(column)

    sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
    sw.add(treeview)

    
    vbox.connect("key-press-event", self.press_space)
    vbox.pack_start(sw,expand=True)

    win.show_all()

    if self.validation==True:
        win.destroy()

    gtk.main()

I also try with to connect a gtk.entry to the box. It manage to detect the key-press-event but I don't manage to mix it with the scrolled window.

I have any advices...

Thanks

1 Answer 1

0
self.treeview.connect("row-activated", self.test)
self.treeview.set_activate_on_single_click(False)

def test(self, tree_view, path, column):
    print('Return!')
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.