2012-02-20 1 views
4

「検索」という永続的なタブを少なくとも1つは含むGtkNotebookがあります。このページ内のウィジェットは、より多くのページを作成することを可能にし、これらのページには閉じるボタンを含むタブがあります。ノートブックのタブを固定して位置を変更できないようにする

タブを並べ替えるだけでなく、「検索」タブを位置0に固定したままにするにはどうすればよいですか? gtk.Notebook.set_tab_reorderable()の現在の動作は、タブを物理的にドラッグして並べ替えることができるということです。並べ替え可能なタブがそのタブを移動するときに、そのタブが強制的に並べ替えられることを強制しません。

例:

この最初の画像であるデフォルト位置:

enter image description here

この画像は、行#6をドラッグした結果である(行#6は、並べ替え可能であるが、検索ではない場合) : enter image description here

「検索」の並べ替えを「並べ替え」タブで行う方法を教えてください。

+2

問題のあるコード部分を表示するには、常に良いアイデア! –

答えて

7

可能な解決策は、このような'page-reordered'信号に接続するようになりますように私には思える:

import gtk 

def on_reorder(notebook, child, number, user_data): 
    if number == 0: 
     notebook.reorder_child(user_data, 0) 

def main(): 
    mainwin = gtk.Window() 
    notebook = gtk.Notebook() 
    mainwin.add(notebook) 
    mainwin.set_default_size(200,200) 
    for label in ['Search', 'Row#6', 'Row#9']: 
     child = gtk.VBox() 
     notebook.append_page(child, gtk.Label(label)) 
     if label != 'Search': 
      notebook.set_tab_reorderable(child, True) 
     else: 
      notebook.set_tab_reorderable(child, False) 
    searchtab = notebook.get_nth_page(0) 
    notebook.connect('page-reordered', on_reorder, searchtab) 

    mainwin.show_all() 
    mainwin.connect('destroy', gtk.main_quit) 
    gtk.main() 

if __name__ == "__main__": 
    main() 

はそれがお役に立てば幸いです。

+0

ありがとう!それはトリックを行います。あなたが特定の位置を固定することができないので、ノートブックにタブを動かさないようにノートを教える方法はないようです。しかしこれは十分に近い行動です。 – Wes

関連する問題