37,741
社区成员
发帖
与我相关
我的任务
分享import wx
class FindReplace(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, size=(355, 365))
vbox_top = wx.BoxSizer(wx.HORIZONTAL) #创建一个BoxSizer布局容器
panel = wx.Panel(self, -1)
vbox = wx.BoxSizer(wx.VERTICAL)#
panel1 = wx.Panel(self, -1)
grid1 = wx.GridSizer(2, 2) #创建一个gird sizer布局容易,分两行两例
grid1.Add(wx.StaticText(panel1, -1, 'Find:', (5, 5)), 0, wx.ALIGN_CENTER_VERTICAL)
grid1.Add(wx.ComboBox(panel1, -1, size=(120, -1)))
grid1.Add(wx.StaticBox(panel1, -1, 'Replace with', (5, 5,)), 0, wx.ALIGN_CENTER_VERTICAL)
grid1.Add(wx.ComboBox(panel1, -1, size=(120, -1)))
panel1.SetSizer(grid1)
vbox.Add(panel1, 0, wx.BOTTOM | wx.TOP, 9)
panel2 = wx.Panel(panel, -1)
hbox2 = wx.BoxSizer(wx.HORIZONTAL) #创建横向排列的布局管理器
sizer21 = wx.StaticBoxSizer(wx.StaticBox(panel2, -1, 'Direction'), orient = wx.VERTICAL)
sizer21.Add(wx.RadioButton(panel2, -1, 'Forward', style = wx.RB_GROUP))
sizer21.Add(wx.RadioButton(panel2, -1, 'Backward'))
hbox2.Add(sizer21, 1, wx.RIGHT, 5)
sizer22 = wx.StaticBoxSizer(wx.StaticBox(panel2, -1, 'Scope'), orient = wx.VERTICAL)
sizer22.Add(wx.RadioButton(panel2, -1, 'all', style = wx.RB_GROUP))
sizer22.Add(wx.RadioButton(panel2, -1, 'Select Lines'))
hbox2.Add(sizer22, 1)
panel2.SetSizer(hbox2)
vbox.Add(panel2, 0, wx.BOTTOM, 9)
#
panel3 = wx.Panel(panel, -1)
sizer3 = wx.StaticBoxSizer(wx.StaticBox(panel3, -1, 'Options'), orient = wx.VERTICAL)
vbox3 = wx.BoxSizer(wx.VERTICAL) #创建一个boxsizer布局容器,是丛向排列的
grid = wx.GridSizer(3, 2, 0, 5) #创建一个GirdSizer布局容器,是三行两例的。水与与直线距离是0,5
grid.Add(wx.CheckBox(panel3, -1, 'Case Sensit'))
grid.Add(wx.CheckBox(panel3, -1, 'Wrap Search'))
grid.Add(wx.CheckBox(panel3, -1, 'Whole Word'))
grid.Add(wx.CheckBox(panel3, -1, 'Incremental'))
vbox3.Add(grid) #将gird布局容器添加到vbox3中
vbox3.Add(wx.CheckBox(panel3, -1, 'Regular Exp'))
sizer3.Add(vbox3, 0, wx.TOP, 4)
panel3.SetSizer(sizer3)
vbox.Add(panel3, 0, wx.BOTTOM, 15)
#
panel4 = wx.Panel(panel, -1)
sizer4 = wx.GridSizer(2, 2, 2, 2,) #创建一个两行两例的Grid布局管理器,水平与直线距离都为2
sizer4.Add(wx.Button(panel4, -1, 'Find', size=(120, -1)))
sizer4.Add(wx.Button(panel4, -1, 'Replace/Find', size=(120, -1)))
sizer4.Add(wx.Button(panel4, -1, 'Replace', size=(120, -1)))
sizer4.Add(wx.Button(panel4, -1, 'Repalce All', size=(120, -1)))
panel4.SetSizer(sizer4) #将布局管理器放到panel4中
vbox.Add(panel4, 0, wx.BOTTOM, 9)
#5
panel5 = wx.Panel(panel, -1)
sizer5 = wx.BoxSizer(wx.HORIZONTAL)#创建一个BoxSizer布局管理器
sizer5.Add((191, -1), 1, wx.EXPAND | wx.ALIGN_RIGHT)
sizer5.Add(wx.Button(panel5, -1, 'Close', size=(50, -1)))
panel5.SetSizer(sizer5)
vbox.Add(panel5, 1, wx.BOTTOM, 9)
#
vbox_top.Add(vbox, 1, wx.LEFT, 9)
panel.SetSizer(vbox_top) #把vbox_top布局管理器放到panel中
self.Center()
self.Show()
app = wx.App()
FindReplace(None, -1, 'Find/Replace')
app.MainLoop()