wxpython更新wx.gridsizer中的wx.statictext

时间:2013-11-20 01:38:24

标签: python text grid wxpython alignment

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

当我在代码上按“go”时,三个statictext列不断更新。我是通过self.text1.SetLabel('newtext')来做的。这非常有效。但是,我最初设置了gridsizer,因此statictext居中。因此,当我运行我的代码时,在更新每个单元格后,我运行self.panel.Layout()。这有助于让我的列再次居中。

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

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

有什么想法?谢谢!

1 个答案:

答案 0 :(得分:1)

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