wxpython sizer 问题

bent1ey 2011-09-28 05:36:33
假设有一个slef.panel = wx.Panel(self,-1,size = (640,480))
def CreateVirButton(self,parent,title):
button=wx.Button(parent,-1,title)
#button.SetFont(wx.Font(20,wx.FONTFAMILY_DEFAULT,wx.FONTSTYLE_ITALIC,wx.FONTWEIGHT_NORMAL))
button.SetBackgroundColour(SPC.lightgrey)
return button
现在要布局一个虚拟键盘。

letterFirst = "Q W E R T Y U I O P".split()
letterSecond = "A S D F G H J K L".split()
letterThird = "Z X C V B N M".split()

mainsizer = wx.BoxSizer(wx.VERTICAL)
firstsizer = wx.BoxSizer(wx.HORIZONTAL)
secondsizer = wx.BoxSizer(wx.HORIZONTAL)
thirdsizer = wx.BoxSizer(wx.HORIZONTAL)

for letter in letterFirst:
btn = self.CreateVirButton(self.panel,letter)
firstsizer.Add(btn)
mainsizer.Add(firstsizer,flag=wx.EXPAND)

for letter in letterSecond:
btn = self.CreateVirButton(self.panel,letter)
secondsizer.Add(btn,flag=wx.EXPAND)
mainsizer.Add(secondsizer,flag=wx.EXPAND)

for letter in letterThird:
btn = self.CreateVirButton(self.panel,letter)
thirdsizer.Add(btn)
mainsizer.Add(thirdsizer,flag=wx.EXPAND)

self.panel.SetSizer(mainsizer)
self.panel.Layout()

为什么最后我的结果达不到我希望呢?
1.第一行显示不全
2.纵行大约只占了1/3.没有占满
3.每个按钮的大小怎么都一样啊。应该是第一行最小,因为字母最多。可是,结果都一样大,第一行显示不全
...全文
103 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yddd2011 2011-09-29
  • 打赏
  • 举报
回复
确实代码有点乱
bent1ey 2011-09-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 iambic 的回复:]
不管问题是什么,重贴代码。看准了
和代码的位置。
[/Quote]
python 代码已重贴

希望布局虚拟键盘。
为什么最后我的结果达不到我希望呢?
1.第一行显示不全
2.纵行大约只占了1/3.没有占满
3.每个按钮的大小怎么都一样啊。应该是第一行最小,因为字母最多。可是,结果都一样大,第一行显示不全
bent1ey 2011-09-28
  • 打赏
  • 举报
回复
假设有一个slef.panel = wx.Panel(self,-1,size = (640,480))

def CreateVirButton(self,parent,title):
button=wx.Button(parent,-1,title)
#button.SetFont(wx.Font(20,wx.FONTFAMILY_DEFAULT,wx.FONTSTYLE_ITALIC,wx.FONTWEIGHT_NORMAL))
button.SetBackgroundColour(SPC.lightgrey)
return button


mainsizer = wx.BoxSizer(wx.VERTICAL)
firstsizer = wx.BoxSizer(wx.HORIZONTAL)
secondsizer = wx.BoxSizer(wx.HORIZONTAL)
thirdsizer = wx.BoxSizer(wx.HORIZONTAL)
letterFirst = "Q W E R T Y U I O P".split()
letterSecond = "A S D F G H J K L".split()
letterThird = "Z X C V B N M".split()

for letter in letterFirst:
btn = self.CreateVirButton(self.panel,letter)
firstsizer.Add(btn)
mainsizer.Add(firstsizer,flag=wx.EXPAND)

for letter in letterSecond:
btn = self.CreateVirButton(self.panel,letter)
secondsizer.Add(btn,flag=wx.EXPAND)
mainsizer.Add(secondsizer,flag=wx.EXPAND)

for letter in letterThird:
btn = self.CreateVirButton(self.panel,letter)
thirdsizer.Add(btn)
mainsizer.Add(thirdsizer,flag=wx.EXPAND)

self.panel.SetSizer(mainsizer)
self.panel.Layout()
iambic 2011-09-28
  • 打赏
  • 举报
回复
不管问题是什么,重贴代码。看准了
和代码的位置。

37,742

社区成员

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

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