中心有一个静态文本,通过单击按钮将其更改为文件中的随机文本。这就是问题本身:按下按钮后,新文本从前一个和平文本的开头开始,而不是从中心开始。问题如何解决?import wximport randomclass TestWindow(wx.Frame): def chBtnClick(self, event): f = open("Words.txt", "r") random_word = random.choice(f.read().split("\n")) self.chText.SetLabel(random_word) def __init__(self, parent, title): wx.Frame.__init__(self, None, title=title, size=(300, 200)) self.panel = wx.Panel(self, wx.ID_ANY) VSizer = wx.BoxSizer(wx.VERTICAL) self.chText = wx.StaticText(self.panel, wx.ID_ANY, label="Click Random") VSizer.Add(self.chText, 0, wx.CENTER | wx.ALL, 5) self.chBtn = wx.Button(self.panel, wx.ID_ANY, label="Random!") VSizer.Add(self.chBtn, 0, wx.CENTER|wx.ALL, 5) self.chBtn.Bind(wx.EVT_BUTTON, self.chBtnClick) self.panel.SetSizer(VSizer) self.Centre() self.Show()if __name__ == "__main__": app = wx.App() frame = TestWindow(None, "ExBurate Test ver.") app.MainLoop()之前按钮按钮后
1 回答
![?](http://img1.sycdn.imooc.com/545865da00012e6402200220-100-100.jpg)
蓝山帝景
TA贡献1843条经验 获得超7个赞
更改文本后,self.panel.Layout()
调用重新居中对象
def chBtnClick(self, event): f = open("Words.txt", "r") random_word = random.choice(f.read().split("\n")) self.chText.SetLabel(random_word) self.panel.Layout()
添加回答
举报
0/150
提交
取消