如何使 `Button` 小于它们的最小尺寸?

How to make `Button`s smaller than their minimal size?

我目前正在设置一些按钮,但问题是,我需要将其中的 10 个按钮压缩成 480 像素。

我发现按钮的最小宽度是50px;如果我将它的大小调整到小于 50,它不会改变。我想将它们的大小更改为 48px 或更小,但我不知道如何进行。

对于 GTK 库,我使用的是 RELM。 我在 GTK-rs's GitHub 上询问过,但他们声称问题出在 GTK 上。

我现在的代码如下

gtk::Box {
    property_width_request: 480,
    orientation: Horizontal,
    #[name="button"]
    gtk::Button{
        property_height_request: 25,
        property_width_request: 25,
        label: &self.model.layout.get_character(0, self.model.shift),
        clicked => Clicked(0),
    },
}

尽管我确实设置了 width_request,但最小宽度看起来是 50px。

有什么方法可以将按钮宽度减小到 45px 或更小吗?

出于显而易见的原因,您不能使小部件小于其最小尺寸。

小部件的最小尺寸由两件事决定:

  • CSS 应用于它的样式规则
  • 其children
  • 的最小尺寸

因此,如果您想更改小部件的最小尺寸,您应该检查应用了哪种样式——您应该使用 the GTK inspector 来找出答案;以及其中每个 child 的大小。

一般来说,您不应该真正尝试强制调整按钮的大小,尤其是当它可以包含文本时。用户字体、主题和本地化等内容可能会打破您决定在系统上应用的任何限制。