Pygtk-notebook-class
PyGTK-ノートブッククラス
ノートブックウィジェットはタブ付きのコンテナです。 このコンテナの各タブには異なるページがあり、ページは重複して表示されます。 タブのラベルをクリックすると、目的のページが表示されます。 ラベルは、上または下、または左または右に表示されるように構成できます。 他のウィジェットが配置されたコンテナウィジェットまたは単一のウィジェットが各ページの下に配置されます。
表示するデータが1つのビューで大きすぎる場合は、異なるページにグループ化され、それぞれがノートブックウィジェットの1つのタブの下に配置されます。 このタイプのコントロールは非常に広く使用されています。 たとえば、インターネットブラウザは、このタブ付きディスプレイを使用して、さまざまなタブのさまざまなページをレンダリングします。
以下は、gtk.Notebookクラスのコンストラクタです-
gtk.Notebook()
以下はgtk.Notebookクラスの頻繁に使用されるメソッドです-
- * append_page(child、label)*-タブのラベルとしてtab_labelで指定されたウィジェットを含むページをノートブックに追加します。 tab_labelをNoneにしてデフォルトのラベルを使用できる場合。
- * insert_page(child、label、position)*-これは、位置によって指定された場所でノートブックにページを挿入します。
- * remove_page(index)*-これは、指定されたインデックスのページを削除します。
- * get_current_page()*-現在のページのページインデックスを返します。
- * set_current_page(index)*-インデックスで指定されたページ番号に切り替えます。
- * set_show_tabs()*-falseの場合、タブは表示されません。 これはデフォルトでTrueです。
- * set_tab_pos(pos)*-ノートブックのページを切り替えるためのタブが描画されるエッジを設定します。 定義済みの定数は-
- gtk.POS_LEFT
- gtk.POS_RIGHT
- gtk.POS_TOP
- gtk.POS_BOTTOM
- * set_tab_label_text(child、text)*-これは、指定されたテキストで新しいラベルを作成し、それを子を含むページのタブラベルとして設定します。
gtk.Notebookウィジェットは、次の信号を発します-
change-current-page | This is emitted when the page forward or page backward request is issued |
focus-tab | This is emitted when the focus is changed by tabbing. |
page-added | This is emitted when a page is added to the notebook. |
page-removed | This is emitted after a page is removed from the notebook. |
select-page | This is emitted when a new child page is selected. |
switch-page | This is emitted when the notebook page is changed. |
例
次の例では、3ページのgtk.Notebookがトップレベルのgtk.Windowに配置されています。 最初のページには、ラベルと入力フィールドがパックされたVBoxがあります。 「qualifications」というラベルが付いた2番目のページには、相互に排他的な3つのRadioButtonウィジェットが追加されるHButtonBoxがあります。 3番目のページには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()
実行すると、上記のコードは3ページのノートブックを表示します-
画像:/pygtk/images/notebook_demo.jpg [NoteBook Demo]画像:/pygtk/images/notebook.jpg [NoteBook]