|
Hi The only way I managed to do this was by placing Buttons in the tags. Attached is a simple example. Hope this helps. Regards Frédéric wrote: Le 3/12/2008, "Paul Malherbe" <[EMAIL PROTECTED]> a écrit: |
import gtk
class NoteBook:
def __init__(self, tags):
self.tags = tags
self.mstFrame = gtk.VBox()
# Create a new notebook and disable tags
self.nb = gtk.Notebook()
self.nb.set_tab_pos(gtk.POS_TOP)
self.nb.unset_flags(gtk.CAN_FOCUS)
self.nb.connect("button-press-event", lambda wid, ret=True: ret)
self.mstFrame.pack_start(self.nb, False, False, 0)
#=======================================================================
# Append pages to the notebook
#=======================================================================
for num, tag in enumerate(self.tags):
# Create buton for notebook tag
but = gtk.Button(tag)
but.connect("clicked", self.chgPage, num)
# Create alignment
alw = gtk.Alignment(0.5, 0.5, 0, 0)
alw.set_padding(0, 0, 5, 5)
# Create vbox
vbx = gtk.VBox(False, 0)
vbx.set_size_request(300, 200)
alw.add(vbx)
# Add alignment and vbox to notebook
self.nb.append_page(alw, tab_label=but)
# rename widgets for future access
exec "self.nb.Tag%s = but" % num
exec "self.nb.Page%s = vbx" % (num + 1)
def chgPage(self, *args):
wid, num = args
if num != self.nb.get_current_page():
wid.emit_stop_by_name("clicked")
self.nb.set_current_page(num)
for x in range(len(self.tags)):
self.disableTag(x)
def disableTag(self, num):
exec "self.nb.Tag%s.set_sensitive(False)" % num
def enableTag(self, num):
exec "self.nb.Tag%s.set_sensitive(True)" % num
if __name__ == "__main__":
win = gtk.Window()
nb = NoteBook(("One", "Two", "Three"))
win.add(nb.mstFrame)
win.show_all()
gtk.main()
_______________________________________________ pygtk mailing list [email protected] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/
