固定笔记本选项卡,使其位置无法更改

Wes*_*Wes 4 python gtk pygtk

我有一个GtkNotebook,至少包含一个名为"搜索"的永久标签.此页面中的窗口小部件允许创建更多页面,并且这些页面具有包含关闭按钮的选项卡.

如何使标签可重新排序,还要将"搜索"标签保持在0位置?gtk.Notebook.set_tab_reorderable()的当前行为是它允许您物理拖动选项卡以对其重新排序...当可重新排序选项卡移过它时,它不会阻止该选项卡被强制重新排序.

例:

第一张图片是默认位置:

在此输入图像描述

此图像是拖动第6行的结果(第6行可重新排序,但搜索不是): 在此输入图像描述

如何通过"可重新排序"标签重新排序"搜索"?

Don*_*ion 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()   
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.