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