微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将刚更改的文本居中?

如何解决如何将刚更改的文本居中?

中间有一个静态文本,通过单击按钮可将其更改为文件中的随机文本。

这就是问题所在:按下按钮后,新文本将从上一个和平文本的开头开始,而不是从中心开始。

该如何解决

import wx
import random

class 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,wx.CENTER | wx.ALL,5)
        
        self.chBtn = wx.Button(self.panel,label="Random!")
        VSizer.Add(self.chBtn,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()

按钮之前

Images before buttom

后按钮

and after

解决方法

更改文本调用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() 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。