PyGTK Notebook button_press_event connection

L

Luigi

Hi all!

I have an application that uses a gtk.Notebook to show the content of a
GUI. Each page of it has a gtk.Label with a text that explains the
content. Each page is added to the notebook with the method
append_page(child, tab_label=None), passing a gtk.Label instance as
tab_label variable.

Now I'd like to connect to the button_press_event of the gtk.Label a
function call. I've done something like this:

<code>

notebook = gtk.Notebook()
....
child = gtk.Frame()
....
label = gtk.Label('Any text')
label.connect('button_press_event', a_function)
....
notebook.append_page(child, label)

</code>

But the button_press_event event is not intercepted (nothing happens
when I click on the tab label).

Any idea to solve this question?

Thanks

Luigi
 
J

Johan Dahlin

notebook = gtk.Notebook()
...
child = gtk.Frame()
...
label = gtk.Label('Any text')
label.connect('button_press_event', a_function)
...
notebook.append_page(child, label)

</code>

But the button_press_event event is not intercepted (nothing happens
when I click on the tab label).

A gtk.Label does not have a gdk window (as in the windowing system of gtk+),
so it cannot listen to events. A workaround is to put it in an eventbox:

eventbox = gtk.EventBox()
eventbox.set_events(gtk.gdk.BUTTON_PRESS_MASK)
eventbox.connect('button-press-event', callback)

label = gtk.Label()
eventbox.add(label)

notebook.append_page(..., eventbox)

Perhaps you should subscribe to the PyGTK mailing list[1] though, where this
kind of question is more appropriately asked

[1]: http://www.daa.com.au/mailman/listinfo/pygtk

Johan Dahlin
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top