首页 > 解决方案 > 如何让 Gtk.Box 填满所有可用空间?

问题描述

布局如下图所示:两个盒子封装在具有指定宽度的垂直盒子中。单个大盒子位于右侧。大盒子应该填满所有可用空间,但是尽管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);

标签: gtk3vala

解决方案


为了解决这个问题,我放弃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;

在此处输入图像描述


推荐阅读