[pygtk] adding a close button to a notebook

N. Volbers mithrandir42 at web.de
Sun Oct 22 16:45:26 WST 2006


Tony Nelson schrieb:
> At 8:36 AM +0200 10/20/06, N. Volbers wrote:
>   
>> Hello everyone,
>>
>> I am using a notebook for a sort of tabbed interface a la Firefox. 
>> Currently, there is a close button for each tab, positioned in the tab 
>> widget. However, I would like to have just a single close button at the 
>> very right of the notebook (again, just like Firefox does). Is there a 
>> way to add a widget inside the notebook tab box?
>>     
>
> I use something like this:
>
> class NotebookTabLabel(gtk.HBox):
>     '''Notebook tab label with close button.
>     '''
>     def __init__(self, on_close, owner_):
>         gtk.HBox.__init__(self, False, 0)
>         
>         label = self.label = gtk.Label()
>         label.set_alignment(0.0, 0.5)
>         self.pack_start(label)
>         label.show()
>         
>         close_image = gtk.image_new_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_MENU)
>         image_w, image_h = gtk.icon_size_lookup(gtk.ICON_SIZE_MENU)
>         
>         close_btn = gtk.Button()
>         close_btn.set_relief(gtk.RELIEF_NONE)
>         close_btn.connect('clicked', on_close, owner_)
>         close_btn.set_size_request(image_w+2, image_h+2)
>         close_btn.add(close_image)
>         self.pack_start(close_btn, False, False)
>         close_btn.show_all()
>         
>         self.show()
>
> tl = NotebookTabLabel(
>     lambda *args: self.owner.on_tab_close_doc(*args),
>     self )
>
> I hacked this down from something fancier, but I think it's still all there.
>   

Thanks for your reply!

The example you provide is very useful, even though it is not exactly 
what I had in mind. I was looking for a single close button that belongs 
to the notebook, and not a button for each tab. Yet your solution works 
well for me, so unless someone suggests something different, I will use 
your approach.

Best regards,

Niklas.



More information about the pygtk mailing list