PyGTK - 筆記本類



Notebook 小部件是一個帶選項卡的容器。此容器中的每個選項卡都包含一個不同的頁面,並且這些頁面以重疊的方式顯示。透過單擊選項卡的標籤,可以使任何所需的頁面可見。可以配置標籤以在頂部、底部、左側或右側顯示。每個頁面下放置了一個包含其他小部件的容器小部件或單個小部件。

如果要顯示的資料在一個檢視中太大,則將其分組到不同的頁面中,每個頁面都放置在 Notebook 小部件的一個選項卡下。這種型別的控制元件非常廣泛地使用。例如,Internet 瀏覽器使用這種選項卡式顯示在不同的選項卡中呈現不同的頁面。

以下是 gtk.Notebook 類的建構函式:

gtk.Notebook()

以下是 gtk.Notebook 類中常用的方法:

  • append_page(child, label) − 將一個頁面附加到筆記本,該頁面包含一個小部件,由 tab_label 指定為選項卡上的標籤。如果 tab_label 可以為 None 以使用預設標籤。

  • insert_page(child, label, position) − 在由 position 指定的位置將一個頁面插入到筆記本中。

  • remove_page(index) − 刪除指定索引處的頁面。

  • get_current_page() − 返回當前頁面的頁面索引。

  • set_current_page(index) − 切換到由索引指定的頁面編號。

  • set_show_tabs() − 如果為假,則選項卡將不可見。預設情況下為真。

  • set_tab_pos(pos) − 設定在筆記本中繪製用於切換頁面的選項卡的邊緣。預定義的常量為:

    • gtk.POS_LEFT

    • gtk.POS_RIGHT

    • gtk.POS_TOP

    • gtk.POS_BOTTOM

  • set_tab_label_text(child, text) − 使用指定的文字建立一個新標籤,並將其設定為包含 child 的頁面的選項卡標籤。

gtk.Notebook 小部件發出以下訊號:

change-current-page 發出頁面向前或頁面向後請求時發出此訊號
focus-tab 透過製表符更改焦點時發出此訊號。
page-added 向筆記本新增頁面時發出此訊號。
page-removed 從筆記本中刪除頁面後發出此訊號。
select-page 選擇新的子頁面時發出此訊號。
switch-page 筆記本頁面更改時發出此訊號。

示例

在以下示例中,一個帶有三個頁面的 gtk.Notebook 放置在一個頂級 gtk.Window 中。第一個頁面包含一個 VBox,其中包含一個標籤和一個輸入欄位。第二個頁面標有“資格”,它有一個 HButtonBox,其中添加了三個互斥的 RadioButton 小部件。第三個頁面有一個 TextView 物件。頁面標籤顯示在頂部。

觀察程式碼:

import gtk
class PyApp(gtk.Window):
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("Notebook Demo")
      self.set_default_size(250, 200)
		
      nb = gtk.Notebook()
      nb.set_tab_pos(gtk.POS_TOP)
      vbox = gtk.VBox(False, 5)
		
      vb = gtk.VBox()
      hbox = gtk.HBox(True, 3)
		
      valign = gtk.Alignment(0.5,0.25, 0, 0)
      lbl = gtk.Label("Name of student")
		
      vb.pack_start(lbl, True, True, 10)
      text = gtk.Entry()
		
      vb.pack_start(text, True, True, 10)
      valign.add(vb)
		
      vbox.pack_start(valign)
      nb.append_page(vbox)
      nb.set_tab_label_text(vbox, "Name")
      hb = gtk.HButtonBox()
		
      btn1 = gtk.RadioButton(None,"Degree")
      hb.add(btn1)
		
      btn2 = gtk.RadioButton(btn1,"P.G.")
      hb.add(btn2)
		
      btn3 = gtk.RadioButton(btn1,"Doctorate")
      hb.add(btn3)
		
      nb.append_page(hb)
      nb.set_tab_label_text(hb, "Qualification")
		
      tv = gtk.TextView()
      nb.append_page(tv)
      nb.set_tab_label_text(tv, "about")
		
      self.add(nb)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
if __name__ == '__main__':
   PyApp()
   gtk.main()

執行後,上述程式碼將顯示一個帶有三個頁面的 Notebook:

NoteBook Demo NoteBook
廣告

© . All rights reserved.