python中的wxPython框架的常用控件
wxPython框架为Python开发者提供了丰富的GUI控件(widgets),这些控件可以用于构建用户界面。下面是一些常用的wxPython控件及其简单示例:
1. 窗口(Frame)
窗口是GUI应用程序的基础,用于包含其他控件。在wxPython中,wx.Frame
类用于创建窗口。
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, title):
super(MyFrame, self).__init__(parent, title=title, size=(300, 200))
if __name__ == '__main__':
app = wx.App(False)
frame = MyFrame(None, 'Hello World')
frame.Show()
app.MainLoop()
2. 按钮(Button)
按钮允许用户通过点击来触发操作。
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, title):
super(MyFrame, self).__init__(parent, title=title, size=(200, 100))
self.button = wx.Button(self, label='Click Me', pos=(50, 20))
self.button.Bind(wx.EVT_BUTTON, self.on_button_click)
def on_button_click(self, event):
print('Button clicked!')
if __name__ == '__main__':
app = wx.App(False)
frame = MyFrame(None, 'Button Example')
frame.Show()
app.MainLoop()
3. 文本框(TextCtrl)
文本框允许用户输入单行或多行文本。
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, title):
super(MyFrame, self).__init__(parent, title=title, size=(250, 150))
self.text_ctrl = wx.TextCtrl(self, pos=(20, 20), size=(200, -1)) # -1 表示自动调整高度
if __name__ == '__main__':
app = wx.App(False)
frame = MyFrame(None, 'Text Ctrl Example')
frame.Show()
app.MainLoop()
4. 静态文本(StaticText)
静态文本用于显示不可编辑的文本。
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, title):
super(MyFrame, self).__init__(parent, title=title, size=(200, 100))
self.static_text = wx.StaticText(self, label='Hello, wxPython!', pos=(50, 20))
if __name__ == '__main__':
app = wx.App(False)
frame = MyFrame(None, 'Static Text Example')
frame.Show()
app.MainLoop()
5. 复选框(CheckBox)
复选框允许用户选择多个选项中的一个或多个。
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, title):
super(MyFrame, self).__init__(parent, title=title, size=(200, 150))
self.checkbox = wx.CheckBox(self, label='Check me', pos=(50, 20))
if __name__ == '__main__':
app = wx.App(False)
frame = MyFrame(None, 'CheckBox Example')
frame.Show()
app.MainLoop()
6. 单选按钮(RadioButton)
单选按钮用于从一组选项中选择一个。通常,这些按钮会组合在一起,确保一次只能选择一个。
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, title):
super(MyFrame, self).__init__(parent, title=title, size=(200, 150))
self.radio1 = wx.RadioButton(self, label='Option 1', pos=(20, 20), style=wx.RB_GROUP)
self.radio2 = wx.RadioButton(self, label='Option 2', pos=(20, 40))
if __name__ == '__main__':
app =