2010-02-18 59 views
1

我有一個筆記本在我的表單中有一些標籤,在這個標籤中我有用於關閉標籤的標籤按鈕。我有這樣的代碼:獲取筆記本的num-page

高清new_tab(個體經營,標籤): self.scrolled_window = gtk.ScrolledWindow()

self.add(self.scrolled_window) 
    self.scrolled_window.add_with_viewport(self.editor_access()) 

    self.scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) 

    label = self.create_tab_label(label,self.editor_access) 

    self.set_tab_label_packing(self.scrolled_window,False,False,2) 
    self.set_tab_label(self.scrolled_window,label) 

    self.saving = False 
    self.already_save.insert(0,self.get_n_pages() - 1) 

    label.show_all() 
    self.show_all() 
    return self.editor 

高清create_tab_label(個體經營,標題,tab_child): 箱= GTK。 HBox中() 標籤= gtk.Label(標題) 爲closeBtn = gtk.Button()

image = gtk.Image() 
    image.set_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_MENU) 

    closebtn.set_image(image) 
    closebtn.set_relief(gtk.RELIEF_NONE) 

    box.pack_start(label, True, True) 
    box.pack_end(closebtn, False, False) 

    self.show_all() 

    closebtn.connect("clicked",self.close_tab) 

    return box 

我怎樣才能獲得標籤的PAGE_NUM我與這個按鈕關閉?

謝謝。

回答

2

如果您的網頁小工具永遠不會改變,你可以將它們傳遞到您的close_tab回調爲用戶的數據:

# In create_tab_label 
    closebtn.connect("clicked", self.close_tab, tab_child) 

def close_tab(self, button, tab_child): 
    # Do something with self.page_num(tab_child) 

更新:的「PAGE_NUM第一個參數必須是gtk.Widget,不instacemethod」你提到的錯誤是因爲這樣的:

label = self.create_tab_label(label,self.editor_access) 

看來你傳遞一個方法tab_widget。請注意,您以前你跑editor_access創建標籤子部件:

self.scrolled_window.add_with_viewport(self.editor_access()) 

您需要存儲這個小部件,所以你可以把它作爲tab_widget,即:

editor_access = self.editor_access() 
self.scrolled_window.add_with_viewport(editor_access) 

# ... 

label = self.create_tab_label(label, editor_access) 
+0

Johannes,非常感謝。你真的幫了我! – 0xAX 2010-02-18 10:52:21

1

#做的東西self.page_num(tab_child)

但PAGE_NUM第一個參數必須是gtk.Widget,不instacemethod

+0

看到我編輯的答案。 – 2010-02-18 12:25:08