【问题标题】:wxpython update wx.statictext inside wx.gridsizerwxpython 更新 wx.gridsizer 中的 wx.statictext
【发布时间】:2013-12-03 20:15:33
【问题描述】:

我正在使用一个 Flexgridsizer,其中包含静态文本和按钮的混合。我的 flexgridsizer 包含 1 列永远不会更改的静态文本,3 列不断更新(有时是十分之一秒),最后一列的所有按钮都保持不变——我大约有 12 行。

当我在我的代码上按“开始”时,三个静态文本列会不断更新。我通过 self.text1.SetLabel('newtext') 做到这一点。这很好用。但是,我最初设置了 gridsizer,因此静态文本居中。因此,当我运行代码时,在更新每个单元格后,我运行 self.panel.Layout()。这有助于让我的列再次居中。

这样做的问题是,由于我做了很多更新,它导致我在最后一列中的按钮看起来像是在左右移动(因为它似乎正在重置按钮的布局)。我希望按钮“保持静止”。为了解决这个问题,我删除了 self.panel.Layout() 但这现在使我的所有文本都是右对齐的。

有没有办法将 Layout() 应用到 gridsizer 的特定列?如果可能的话,我真的需要保留 gridsizer。我也看到了“noautoresize”,但我的一个专栏在每次更新时都会遇到不同长度的文本。

有什么想法吗?谢谢!

【问题讨论】:

    标签: python text grid wxpython alignment


    【解决方案1】:

    尝试将 StaticText 大小设置为特定的值,例如 (100, -1)。这样它应该保持不变,除非您碰巧应用了一个大于您设置的大小的字符串。我不确定那时会发生什么,但它可能会被截断。但是,如果您更新得太快以至于无法阅读,我认为这不是问题。

    【讨论】:

      猜你喜欢
      • 2012-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 2010-12-16
      • 2011-03-21
      相关资源
      最近更新 更多