我有一个HPaned,它的一个子项经常更改其大小要求,因为其文本更改了。结果是每次更改文本时窗格都会移动。我想重写Paned.compute_position方法,以使孩子的大小不会减少,而只会增加。但是,我找不到覆盖它的方法。甚至

class MyHPaned(gtk.HPaned):
    def do_compute_position(self, allocation, child1_req, child2_req):
        print "Hi"
        return gtk.HPaned.compute_position(self, allocation, child1_req, child2_req)
gobject.type_register(MyHPaned)


不起作用。你有什么建议吗?谢谢!

最佳答案

无法覆盖gtk_paned_compute_position,因为该功能在GTK本身中不是虚拟的。另外,gtk_paned_compute_position被标记为内部且已弃用,并且从GTK + -2.24.x源未在任何地方调用。我怀疑只是导出了它,以便您可以找出分隔符的位置,而不会通过覆盖影响它。

而不是尝试覆盖HPaned.compute_position,您应该将一个单子容器(例如gtk.Bin的子容器)放入窗格中,该容器通过挂接到size-allocate信号并使用

10-08 04:08