import wx
class MyFrame(wx.Frame):
def __init__(self, *args, **kw):
super(MyFrame, self).__init__(*args, **kw)
self.Centre()
panel = wx.Panel(self)
self.text_ctrl = wx.TextCtrl(panel, style=wx.TE_MULTILINE,value="请输入内容")
button = wx.Button(panel, label="点击我")
button.Bind(wx.EVT_BUTTON, self.on_button_click)
sizer = wx.BoxSizer(wx.VERTICAL)
"""sizer.Add(self.text_ctrl, 1, wx.ALL | wx.EXPAND, 5)
是在将一个文本控件(self.text_ctrl)添加到垂直排列的盒式布局管理器(sizer)中。
self.text_ctrl:这是要添加到布局中的控件对象,具体是一个多行文本框。
1:这是用于指定一个可调整的比例因子。在这个例子中,文本控件的尺寸将根据窗体的变化而变化,并且在这个垂直布局中,它的尺寸变化比例为1。如果有其他控件也有比例因子,它们将根据这些因子的比例来分配空间。
wx.ALL | wx.EXPAND:这部分是指控件的对齐方式和扩展方式。wx.ALL意味着该控件将与布局容器的所有边界保持间距。wx.EXPAND表示该控件会尽可能地扩展以填充分配给它的空间。这两者通过|(按位或)操作符组合在一起,表示控件将与所有边界保持间距,并且会扩展以填满可用空间。
5:这是控件与布局容器边界的间距值,单位为像素。在这个例子中,文本控件的四边都将与布局容器保持5像素的距离。"""
sizer.Add(self.text_ctrl, 1, wx.ALL | wx.EXPAND, 5)
sizer.Add(button, 0, wx.ALL | wx.CENTER, 5)
panel.SetSizer(sizer)
def on_button_click(self, event):
"""当按钮被点击时调用"""
self.text_ctrl.AppendText("你好,世界!\n")
if __name__ == '__main__':
app = wx.App(False)
frame = MyFrame(None, title="文本框", size=(1000, 600))
frame.Show()
app.MainLoop()