python - 相当于 pyGTK 中的 "weight"参数?

标签 python gtk pygtk

在 pyGTK 中制作 GUI 时,我经常希望有多个子对象以指定的比例展开。作为一个例子(不是我的特定应用程序,只是我觉得很容易画的东西),假设我正在创建某种照片查看器,它在右侧的选项卡中显示 EXIF 元数据,我希望这些保持 2: 1 比例,所以照片总是占宽度的 2/3,元数据占宽度的 1/3:

enter image description here

在 wxWindows 中,您将为这些项目中的每一个分配一个“权重”参数,因此左侧的 VBox 将具有 weight = 2 并且右侧的 VBox 将有 weight = 1,然后当您调整窗口大小时,容器将保持其 2:1 的比例。然而,在 GTK+ 中,似乎你所能做的就是选择是否要扩展容器,所以在这种情况下我会使用类似的东西:

top_level_hbox.pack_start(exif_container, expand=False)
top_level_hbox.pack_start(photo_container, expand=True, fill=True)

不过,我相信这会使 exif_container 的大小根据其子部件的大小而定,而 photo_container 会根据需要增长,因此即使它们最初的比例为 2:1,这将无法在调整窗口大小后继续存在。在 GTK 中是否有一种简单的或至少是标准的方法来进行这种“加权扩展”?

最佳答案

您可以使用表格布局来做到这一点。 IE。而不是使用 hbox,创建一个 gtk.Table,具有单行和 3 列。将照片部分附加到前两列,将状态面板附加到第三列,在展开它们时应保持您想要的 2:1 比例。

例如。

table = gtk.Table(rows=1, columns=3)
table.attach(photo_container, 0, 2, 0, 1) # Span column 0..2
table.attach(exif_container, 2, 3, 0, 1)  # Span final column
window.add(table)

关于python - 相当于 pyGTK 中的 "weight"参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25701666/

相关文章:

python - flask_restplus add_namespace 一直没有属性 'as_view'

Python 环境变量中的环境变量

python - Macosx 上的 gtk 问题

rust - 使用 Rust 在 GTK GUI 上渲染小的 LaTeX 片段

python - Python 中未定义命令 - 真正的基础知识,但令人困惑!

python - 无法滚动到 TreeView PyGTK/GTK 的末尾

Python-二维字符串中字母的位置

python - spacy-pytorch-transformers 中的标记向量是如何计算的

c - 使用 pixbuf 显示像素缓冲区

pygtk - GtkGrid 中的动态数据