Skip to content

Instantly share code, notes, and snippets.

@smallevilbeast
Created December 3, 2013 06:51
Show Gist options
  • Save smallevilbeast/7764954 to your computer and use it in GitHub Desktop.
Save smallevilbeast/7764954 to your computer and use it in GitHub Desktop.
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import gtk
class NoteBook(gtk.Window):
def __init__(self):
super(NoteBook, self).__init__()
self.notebook = gtk.Notebook()
self.notebook.set_tab_pos(gtk.POS_TOP)
self.set_size_request(600, 300)
self.add(self.notebook)
for i in range(4):
self.append_page_content("Page %d" % i)
self.show_all()
gtk.main()
def append_page_content(self, title):
page = gtk.Button(title)
label = self.get_close_label(page, title)
self.notebook.append_page(page, label)
def get_close_label(self, page, text=""):
box = gtk.HBox()
title_label = gtk.Label(text)
image = gtk.Image()
image.set_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_MENU)
close_button = gtk.Button()
close_button.set_image(image)
close_button.set_relief(gtk.RELIEF_NONE)
close_button.connect('clicked', self.destroy_tab, page)
box.pack_start(title_label,
expand=True, fill=True, padding=0)
box.pack_end(close_button,
expand=False, fill=False, padding=0)
box.show_all()
return box
def destroy_tab(self, widget, data):
page_num = self.notebook.page_num(data)
self.notebook.remove_page(page_num)
return True
if __name__ == "__main__":
NoteBook()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment