在PyGTK / GTK中即时添加/删除笔记本页面

时间:2009-07-13 07:36:19

标签: gtk pygtk

如何动态刷新笔记本?

我有一个应该有各种数量的应用程序 页面根据底层模型中的数据。为了 同步笔记本的外观我想刷新它 每次在模型中添加/删除行时。

我试过这个:

    ...
    def get_pagebox(self, label)
        ...
        return pagebox
    def _reinit(self):
        for child in self.notebook.get_children():
            self.notebook.remove(child)
        for label in self.get_labels():
            self.notebook.append(self.get_pagebox(label), label)
        self.notebook.queue_draw_area(0,0,-1,-1)
    ...

它会删除旧页面,但无法添加新页面。可能是什么 问题以及你认为如何做到这一点?

2 个答案:

答案 0 :(得分:4)

添加新页面后,您应该在笔记本上调用show_all()。最初由GTK +创建的所有小部件都是隐藏的。 queue_draw_area调用不是必需的。

答案 1 :(得分:2)

看起来很好。您是否尝试在添加小部件后在窗口小部件上显式show()