按钮相互重叠
Buttons overlap each other
我有以下代码:
self.btn1 = wx.Button(self, -1, _("a"))
self.btn2 = wx.Button(self, -1, _("b"))
btnSizer = wx.BoxSizer(wx.HORIZONTAL)
btnSizer.Add(self.btn1 , 0, wx.RIGHT, 10)
btnSizer.Add(self.btn2 , 0, wx.RIGHT, 10)
这很好用。
但是有一种情况我更改了 btn2
的标题:
self.btn1.SetLabel('bbbbb')
当我这样做时 btn1
重叠 btn2
...
第一行是原来的
第二行在设置标签之后。
如何使屏幕刷新为新的按钮大小?
您可以使用 self.Layout()
,但在这种情况下确实没有必要。您的代码一定有问题。
import wx
class ButtonFrame(wx.Frame):
def __init__(self, value):
wx.Frame.__init__(self,None)
self.btn1 = wx.Button(self, -1, ("a"))
self.btn2 = wx.Button(self, -1, ("b"))
self.btnSizer = wx.BoxSizer(wx.HORIZONTAL)
self.btnSizer.Add(self.btn1 , 0, wx.RIGHT, 10)
self.btnSizer.Add(self.btn2 , 0, wx.RIGHT, 10)
self.btn1.Bind(wx.EVT_BUTTON, self.OnPressA)
self.btn2.Bind(wx.EVT_BUTTON, self.OnPressB)
self.SetSizer(self.btnSizer)
self.Centre()
self.Show()
def OnPressA(self,evt):
self.btn1.SetLabel('bbbbbbbbbbbbbbbbbbbbbbbbbb')
# self.Layout()
def OnPressB(self,evt):
self.btn2.SetLabel('aaaaaaaaaaaaaaaaaaaaaaaaaa')
# self.Layout()
if __name__ == "__main__":
app = wx.App(False)
ButtonFrame(None)
app.MainLoop()
我有以下代码:
self.btn1 = wx.Button(self, -1, _("a"))
self.btn2 = wx.Button(self, -1, _("b"))
btnSizer = wx.BoxSizer(wx.HORIZONTAL)
btnSizer.Add(self.btn1 , 0, wx.RIGHT, 10)
btnSizer.Add(self.btn2 , 0, wx.RIGHT, 10)
这很好用。
但是有一种情况我更改了 btn2
的标题:
self.btn1.SetLabel('bbbbb')
当我这样做时 btn1
重叠 btn2
...
第一行是原来的 第二行在设置标签之后。
如何使屏幕刷新为新的按钮大小?
您可以使用 self.Layout()
,但在这种情况下确实没有必要。您的代码一定有问题。
import wx
class ButtonFrame(wx.Frame):
def __init__(self, value):
wx.Frame.__init__(self,None)
self.btn1 = wx.Button(self, -1, ("a"))
self.btn2 = wx.Button(self, -1, ("b"))
self.btnSizer = wx.BoxSizer(wx.HORIZONTAL)
self.btnSizer.Add(self.btn1 , 0, wx.RIGHT, 10)
self.btnSizer.Add(self.btn2 , 0, wx.RIGHT, 10)
self.btn1.Bind(wx.EVT_BUTTON, self.OnPressA)
self.btn2.Bind(wx.EVT_BUTTON, self.OnPressB)
self.SetSizer(self.btnSizer)
self.Centre()
self.Show()
def OnPressA(self,evt):
self.btn1.SetLabel('bbbbbbbbbbbbbbbbbbbbbbbbbb')
# self.Layout()
def OnPressB(self,evt):
self.btn2.SetLabel('aaaaaaaaaaaaaaaaaaaaaaaaaa')
# self.Layout()
if __name__ == "__main__":
app = wx.App(False)
ButtonFrame(None)
app.MainLoop()