【发布时间】:2018-10-09 02:02:39
【问题描述】:
我怎样才能让代码正常工作我的意思是我尝试通过单击按钮来更改文本,但它给了我一个错误,请帮助。 提前谢谢大家。
导入 wx
将 wx.grid 导入为 gridlib
类RegularPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.SetBackgroundColour("blue")
button1 = wx.Button(self, label="change the text")
self.Bind(wx.EVT_BUTTON, self.OnChange, id=button1.GetId())
def OnChange(self, event):
value = str(self.text.GetLabel())
value = "this works"
self.text.SetLabel(str(value))
class OtherPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.SetBackgroundColour("white")
self.text = wx.StaticText(self, -1, 'try to change this text', (40, 60))
类 GridPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.grid = gridlib.Grid(self, style=wx.BORDER_SUNKEN)
self.grid.CreateGrid(20,8)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.grid, 1, wx.EXPAND)
self.SetSizer(sizer)
类 MainPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
notebook = wx.Notebook(self)
page = wx.SplitterWindow(notebook)
notebook.AddPage(page, "Splitter")
hSplitter = wx.SplitterWindow(page)
panelOne = OtherPanel(hSplitter)
panelTwo = GridPanel(hSplitter)
hSplitter.SplitVertically(panelOne, panelTwo)
hSplitter.SetSashGravity(0.5)
panelThree = RegularPanel(page)
page.SplitHorizontally(hSplitter, panelThree)
page.SetSashGravity(0.5)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(notebook, 1, wx.EXPAND)
self.SetSizer(sizer)
类 MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title="Nested Splitters",
size=(800,600))
panel = MainPanel(self)
self.Show()
如果 name == "main":
app = wx.App(False)
frame = MainFrame()
app.MainLoop()
【问题讨论】:
标签: wxpython