python - pygtk:覆盖 gtk.Paned.compute_position

标签 python pygtk

我有一个 HPaned,它的一个子元素经常更改其大小要求,因为它的文本发生了变化。结果是每次文本更改时 Pane 都会移动。我想重写 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 ,您应该在 Pane 中放置一个单子(monad)容器(例如 gtk.Bin 的子容器),该容器通过挂接到 size-allocate 来实现所需的大小调整策略。信号和调用set_size_request与所需的尺寸。 HPaned 将自动遵守这一点。

关于python - pygtk:覆盖 gtk.Paned.compute_position,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20991014/

相关文章:

python - 如何在 python 中使用 pyarrow 从 S3 读取分区 Parquet 文件

python - 将用户输入作为 python for 循环的限制传递

python - 需要有关 GtkTextBuffer(GtkTextView)序列化/反序列化的示例/帮助

python - 强制 matplotlib 图的背景透明

python - 有没有办法用 PyGTK AppIndicator 检测鼠标点击

python - 如何在 python 中生成 RGB 立方体矩阵?

Python 3 and-or vs if-else

python - 为什么安装 python 包会破坏 setuptools 并导致找不到 pkg_resources?

python - pyGTK 自动调整笔记本选项卡大小

python - PyGTK 小部件的就地替换