Python 如何获得(无子女)和#x201C;标签”;在pygtk应用程序中

Python 如何获得(无子女)和#x201C;标签”;在pygtk应用程序中,python,tabs,pygtk,Python,Tabs,Pygtk,我面临的问题是在pygtk应用程序中需要标签。与gedit非常相似,但没有任何子部件内容。 我遇到过,但这需要我为每个选项卡放置一个小部件,这是我不想要的 原因是,我有一个小部件,但只想根据选择的选项卡更新其内容 有关于如何做的提示吗? 到目前为止,我的想法是为每个选项卡添加一些不可见的小部件,然后连接到select页面信号。我可以使用哪个小部件作为不可见的小部件,或者是否有更好的/替代方法来实现我的目标?您可以拥有全局小部件,每个选项卡一个,以便在选择选项卡时轻松访问它们 self.n

我面临的问题是在pygtk应用程序中需要标签。与gedit非常相似,但没有任何子部件内容。 我遇到过,但这需要我为每个选项卡放置一个小部件,这是我不想要的

原因是,我有一个小部件,但只想根据选择的选项卡更新其内容

有关于如何做的提示吗?
到目前为止,我的想法是为每个选项卡添加一些不可见的小部件,然后连接到
select页面
信号。我可以使用哪个小部件作为不可见的小部件,或者是否有更好的/替代方法来实现我的目标?

您可以拥有全局小部件,每个选项卡一个,以便在选择选项卡时轻松访问它们

    self.notebook.append_page(self.rightBox,    gtk.Label("Orders"))
然后连接到“切换页面”信号

以及:

现在您有了带有当前所选页面标签的“名称”。只需测试它(如果name==“Orders”…)即可进行交互


希望这能有所帮助

隐形小部件的想法很有效。但不是使用
gtk.Invisible
(这只是崩溃),而是使用
gtk.HBox()
或任何其他看起来空的东西

self.notebook.append_page(gtk.HBox(), gtk.Label("title"))
现在,如果我真的想在选项卡内显示内容,我可以使用reparent将小部件移动到当前选项卡,如下所示

class Tab(gtk.HBox):
    def __init__(self, child):
        self.child = child

self.notebook.append_page(Tab(myWidget), gtk.Label("title"))

def pageSelected(self, notebook, page, pagenum):
    box = notebook.get_nth_page(pagenum)
    box.child.reparent(box)

因此,当我将self.rightBox多次添加到笔记本中时,我会收到警告
GtkWarning:无法在具有父项的小部件上设置父项,而且如果我在某个地方显示
rightBox
,则该内容会中断(尽管我可以接受它显示在笔记本中)。你确定这有用吗?当然,我在很多大型节目中都使用它。但我只添加了一次self.rightbox,并创建了其他HBox和VBox来实现它。那么您可能误解了我的问题。我希望在每个选项卡中都有相同的小部件。但是经过一些实验,我找到了答案。谢谢你的努力!
self.notebook.append_page(gtk.HBox(), gtk.Label("title"))
class Tab(gtk.HBox):
    def __init__(self, child):
        self.child = child

self.notebook.append_page(Tab(myWidget), gtk.Label("title"))

def pageSelected(self, notebook, page, pagenum):
    box = notebook.get_nth_page(pagenum)
    box.child.reparent(box)