gtkmm:将容器小部件(Box)中的元素堆叠在一起

Posted

技术标签:

【中文标题】gtkmm:将容器小部件(Box)中的元素堆叠在一起【英文标题】:gtkmm: stack together elements in the container widget (Box) 【发布时间】:2018-02-19 20:34:11 【问题描述】:

我想创建某种工具栏,由按钮组成。我用的是ButtonBox,里面放了一些切换按钮、颜色按钮和一个普通按钮。

我想完成两件事:

    不管窗口宽度如何,使按钮粘在一起,它们之间没有边距。 最右边的按钮位于窗口右侧,其他按钮位于左侧。

如果我不想要第二件事,我可以使用 set_valign 以便工具栏向右缩小。

我尝试在颜色按钮后添加空 Gtk::Box 并允许它展开,这将最右边的按钮保留在右侧,但它仍然在按钮之间留有边距,无论 pack_startpack_end 的参数是什么我try - 有两个可选的布尔参数,但它们似乎都没有做任何事情。

这是正常的样子:

下面是空盒子的样子:

那么我应该怎么做才能去除按钮之间的边距,有没有更好的方法来让一些按钮在右边,一些在左边?

【问题讨论】:

【参考方案1】:

ButtonBox 将始终在按钮之间留有空间。如果您希望按钮之间没有空格,请使用常规 Box。

否则你做对了。使用方框将右侧按钮移动到边缘。有时,您可以通过将pack_startpack_end 用于同一个Box 中的不同按钮来实现相同的效果。

【讨论】:

以上是关于gtkmm:将容器小部件(Box)中的元素堆叠在一起的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 中的索引堆叠。如何在所有其他小部件之上显示容器?

如何计算存储在 Gtk::Grid 中的小部件?

图像小部件的 Gtkmm 点击信号

gtkmm 是不是可以多次将相同的小部件添加到 vbox

gtkmm 获取小部件的大小

无法获取小部件的高度/宽度 - gtkmm