代码之家  ›  专栏  ›  技术社区  ›  Serafina Brocious

在GTK中将页面重新附加到笔记本#

  •  10
  • Serafina Brocious  · 技术社区  · 14 年前

    我使用一个Notebook小部件来创建一个选项卡式的文件视图,并且我添加了一些代码来允许从现有的笔记本中分离页面,这将生成一个新窗口,其中包含一个单独的笔记本,只包含该页面。不过,我也希望能够在多个笔记本之间移动页面。

    这个 Notebook.WindowCreationHook

    1 回复  |  直到 12 年前
        1
  •  4
  •   Radu C    14 年前

    我决定按照我自己的建议去做(你投了-1,我删掉了,因为它并不能真正回答问题),所以在这里我又冒着名誉的风险。代码:

    http://uplink.kicks-ass.net/~radu/GTK_Sharp_Notebook/

    在上面的地址你会发现两个相同的东西档案(因为我不知道你会喜欢哪一个)。在档案里有我今天写的代码,它是这样做的:

    主窗口包含一个带有三个选项卡的笔记本,每个选项卡都有一个随机的UI元素(一个按钮、一个日历和一个复选框)。您可以将选项卡拖到主窗口之外。当你把它们放到主窗口外时,会创建一个新窗口,它本身包含一个笔记本。您刚刚删除的选项卡将出现在新窗口中。你自己走了这么远。

    现在,如果将另一个选项卡从主窗口拖动到新窗口,则该选项卡将添加到新窗口的笔记本中,而不是创建新窗口。

    另外,如果将所有选项卡从新窗口拖开,拖回主窗口,新窗口将被销毁(在最后一个选项卡被拖走之后)。

    这东西的钥匙? GroupId = 0 所有的笔记本。他们自己处理拖拽物。

    如果您想在新窗口中隐藏选项卡(在重新附加它们之前),您可能希望查看停靠小部件而不是笔记本。