如何让 Gtk.Box 填满所有可用空间?

Posted

技术标签:

【中文标题】如何让 Gtk.Box 填满所有可用空间?【英文标题】:How to make Gtk.Box fill all the available space? 【发布时间】:2020-08-11 22:47:42 【问题描述】:

布局如下图所示:两个盒子封装在具有指定宽度的垂直盒子中。单个大盒子位于右侧。大框应该填满所有可用空间,但是尽管设置了Gtk.Align.FILL 属性,但它并没有发生。

请忽略“利用率”框。

        cpu_utilization_chart = new Chart (cpu.core_list.size);
        cpu_frequency_chart = new Chart (1);
        cpu_temperature_chart = new Chart (1);

        var smol_charts_container = new Gtk.Box (Gtk.Orientation.VERTICAL, 0);
        smol_charts_container.add (cpu_frequency_chart);
        smol_charts_container.add (cpu_temperature_chart);

        var big_box = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 0);
        big_box.add (smol_charts_container);
        big_box.add (cpu_utilization_chart);

        attach (title_grid, 0, 0, 1, 1);
        attach (grid_usage_labels(), 0, 1, 1, 1);
        attach (big_box, 0, 1, 1, 1);

【问题讨论】:

【参考方案1】:

为了解决这个问题,我放弃了 Gtk.Grid 并将其替换为 Gtk.Box

        pack_end (cpu_utilization_chart, true, true, 0);
        pack_end(smol_charts_container, false, false, 0);

还有smol_charts_container.hexpand = false;

【讨论】:

以上是关于如何让 Gtk.Box 填满所有可用空间?的主要内容,如果未能解决你的问题,请参考以下文章

带有 PageTabViewStyle 的 TabView 屏幕中的背景不会填满整个可用的垂直空间

Tableview 未使用所有可用空间

UITableViewCell 高度基于可用屏幕空间

WPF 如何让 Viewbox 从 StackPanel 中了解其可用空间

模拟没有可用磁盘空间情况的最简单方法?

Docker 填满 macOS 上的存储空间