【发布时间】:2011-05-25 09:00:59
【问题描述】:
我正在尝试在 GTK# 中使用以下属性制作方形按钮表:
- 将一次添加和删除一个按钮。
- 按钮的布局应该像页面上的文本一样 - 从左到右,直到一行中没有更多按钮,然后换行到下一行。
- 如果按钮的数量超出了窗口的大小,则应该有一个垂直滚动条。
- 表格应该可以调整大小。调整大小应根据需要重排按钮。
- 按钮的大小应该是固定的。
我开始尝试使用具有 Homogenous==true 的表。我为 SizeAllocated 添加了一个处理程序,并在其中检查表的宽度是否已更改到足以添加或删除一列。如果有,我删除了所有按钮,更新了 NColumns 并将按钮重新附加到正确的位置。这似乎可行,但按钮的大小不是固定的 - 它们会扩展以填充水平空间。
接下来我尝试关闭同质化并设置按钮的首选尺寸。一个小问题是,理想情况下,我想在每个按钮上放置一个已知大小的位图,并且无论按钮在位图周围添加多少像素,我都希望布局正确,但我不确定如何找出按钮的总大小来做我的计算。一个更严重的问题是我的应用程序现在重绘不一致 - 有时按钮标签偏离中心或根本没有绘制。我想知道这是否是因为我正在更改布局以响应错误的信号。
我应该怎么做呢? Table 是适合这项工作的容器吗?有什么东西可以做我想要的开箱即用吗? (也许更类似于文件浏览器中的“图标”或“缩略图”视图?)根据大小变化操作窗口布局的正确方法是什么?
【问题讨论】: