【问题标题】:How do I make elements in Vertical BoxSizer closer together?如何使 Vertical BoxSizer 中的元素靠得更近?
【发布时间】:2018-12-25 07:08:57
【问题描述】:

有没有办法强制 BoxSizer 以特定间隙显示其元素? (彼此靠近而不是更远)

我正在尝试找到一种方法将 5 个 StaticText 元素更紧密地显示在一起,以便它们适合一个小面板,但只能适合 4 个元素 如果它们彼此靠近,显然有 5 个静态文本的空间

我假设我也可以将其设为带有线条的单个静态文本,但我试图将每一行保留为不同的对象

【问题讨论】:

  • 你能发一些代码吗?
  • 添加小部件时只需将边框像素设置为0即可。
  • 如果您对 sizer 填充不满意,请尝试更改面板中这些项目的字体大小。

标签: python wxpython wxwidgets sizer static-text


【解决方案1】:

我想这是不可能的。布局引擎会考虑最大的字符串大小,加上一个小的边距,以便清晰可见。

您可以尝试通过AddSpacer 传递一个负值在字符串之间添加一个固定空格。这是一个我没有测试过的肮脏的hack。

【讨论】:

    【解决方案2】:

    每个静态文本都有一个遵循原生平台准则的“最佳尺寸”。打算修改时的明显建议是不要这样做。

    但如果你觉得你真的必须……

    您可以获取需要适合所有这些的小面板的高度(参见GetSize),将其除以5并将每个静态文本的高度设置为结果,即aStaticText->SetSize(-1, smallPanelHeight/5);

    另一种方法是为每个静态文本设置较小的字体,并让它相应地调整其“最佳大小”。在决定哪种字体最适合您之前,您可能需要尝试几种字体大小。

    【讨论】:

      猜你喜欢
      • 2020-12-28
      • 2011-11-30
      • 2018-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-22
      • 2019-11-28
      相关资源
      最近更新 更多