我有一个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
信号并使用