[D]下面的代码。生成没有错误。但是那个窗口总是1x1大小。不能跟总面板默认的大小一样。这个在哪里改啊?

cndeer 2012-03-13 12:00:06
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()

------------------
Double行动:
原题分数:40
加分:40
...全文
73 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
angel_su 2012-03-14
  • 打赏
  • 举报
回复
我试了只用一个panel就可以正常显示了,还有些错误瑕疵你自己看到后修正吧...
angel_su 2012-03-13
  • 打赏
  • 举报
回复
panel用一个就好,Add里可以加其他sizer。刚有人问类似问题:http://topic.csdn.net/u/20120313/00/eacd9b69-a90e-4790-a7e1-2947427db389.html
cndeer 2012-03-13
  • 打赏
  • 举报
回复
楼上的朋友。能不能指出我贴出来的代码中的问题?
我找了半天也没发现。
zengna_com 2012-03-13
  • 打赏
  • 举报
回复
相对布局和绝对布局。http://download.csdn.net/detail/thundor/2517649

37,741

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧