Python论坛  - 讨论区

标题:[python-chinese] wxPython里布局的问题

2005年11月02日 星期三 09:54

mydooom mydooom at gmail.com
Wed Nov 2 09:54:07 HKT 2005

 sizer = rcs.RowColSizer()
 sizer.Add(wx.StaticText(self, -1, "用户名:", (20, 30)),row=1,col=1)
sizer.Add(wx.StaticText(self, -1, "密码:", (20, 60)),row=1,col=1)

如上两行,文本框的位置是根据(20,30)这个定的,而不是row..和col呢,即使把(20,30)取了,虽然位置发生改变,但是密码框的row和col不管怎么改变位置都重叠了呢,各位请指点下。还有你们用什么布局管理器啊??
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051102/4882baaf/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月02日 星期三 09:54

卢定权 ldqandhx at 163.com
Wed Nov 2 09:54:44 HKT 2005

python-chinese,您好!

	

        致
礼!
 				

        卢定权
        ldqandhx at 163.com
          2005-11-02




[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月02日 星期三 10:15

limodou limodou at gmail.com
Wed Nov 2 10:15:41 HKT 2005

在 05-11-2,mydooom<mydooom at gmail.com> 写道:
>  sizer = rcs.RowColSizer()
>   sizer.Add(wx.StaticText(self, -1, "用户名:", (20, 30)),row=1,col=1)
>         sizer.Add(wx.StaticText(self, -1, "密码:", (20, 60)),row=1,col=1)
>
> 如上两行,文本框的位置是根据(20,30)这个定的,而不是row..和col呢,即使把(20,30)取了,虽然位置发生改变,但是密码框的row和col不管怎么改变位置都重叠了呢,各位请指点下。还有你们用什么布局管理器啊??

表格布局我使用wxGridBagSizer,简单的就使用BoxSizer,并且嵌套使用。

--
I like python!
My Donews Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月02日 星期三 10:31

张骏 zhangj at foreseen-info.com
Wed Nov 2 10:31:41 HKT 2005

在 2005-11-02 09:54:07,mydooom <mydooom at gmail.com> 写道:
>  sizer = rcs.RowColSizer()
>  sizer.Add(wx.StaticText(self, -1, "用户名:", (20, 30)),row=1,col=1)
> sizer.Add(wx.StaticText(self, -1, "密码:", (20, 60)),row=1,col=1)
> 
> 如上两行,文本框的位置是根据(20,30)这个定的,而不是row..和col呢,即使把(20,30)取了,虽然位置发生改变,但是密码框的row和col不管怎么改变位置都重叠了呢,各位请指点下。还有你们用什么布局管理器啊??

如果用sizer,row,col参数指定的就是控件的位置。
你将两个控件都指定在第一行,第一列肯定会重叠
建议看看wxPython 的demo

-- 
张骏 <zhangj at foreseen-info.com>

敏捷来自Python
简单源于我们
丰元信信息技术有限公司



[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月02日 星期三 11:22

Qiangning Hong hongqn at gmail.com
Wed Nov 2 11:22:45 HKT 2005

mydooom wrote:
>  sizer = rcs.RowColSizer() 
>   sizer.Add(wx.StaticText(self, -1, "用户名:", (20, 30)),row=1,col=1)
>         sizer.Add(wx.StaticText(self, -1, "密码:", (20, 60)),row=1,col=1)
>  
> 如上两行,文本框的位置是根据(20,30)这个定的,而不是row..和col呢,即使把
> (20,30)取了,虽然位置发生改变,但是密码框的row和col不管怎么改变位置都重
> 叠了呢,各位请指点下。

问一下,你SetSizer了吗?

> 还有你们用什么布局管理器啊??

我用的最多的就是BoxSizer了,简单好用,:)

-- 
Qiangning Hong, Registered Linux User #396996
My Blog: http://www.hn.org/hongqn
RSS: http://feeds.feedburner.com/hongqn


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月02日 星期三 11:23

mydooom mydooom at gmail.com
Wed Nov 2 11:23:42 HKT 2005

谢谢,那问题已经解决了,还在熟悉中,呵呵。

在05-11-2,limodou <limodou at gmail.com> 写道:
>
> 在 05-11-2,mydooom<mydooom at gmail.com> 写道:
> > sizer = rcs.RowColSizer()
> > sizer.Add(wx.StaticText(self, -1, "用户名:", (20, 30)),row=1,col=1)
> > sizer.Add(wx.StaticText(self, -1, "密码:", (20, 60)),row=1,col=1)
> >
> >
> 如上两行,文本框的位置是根据(20,30)这个定的,而不是row..和col呢,即使把(20,30)取了,虽然位置发生改变,但是密码框的row和col不管怎么改变位置都重叠了呢,各位请指点下。还有你们用什么布局管理器啊??
>
> 表格布局我使用wxGridBagSizer,简单的就使用BoxSizer,并且嵌套使用。
>
> --
> I like python!
> My Donews Blog: http://www.donews.net/limodou
>
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051102/61099871/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月02日 星期三 13:39

mydooom mydooom at gmail.com
Wed Nov 2 13:39:32 HKT 2005

那个只是测试的,结果不是这个问题,是没有写self.SetSizer。。
现在还有个问题,我用了StaticBox如下:
box = wx.StaticBox(self, -1, "登陆")
bsizer = wx.StaticBoxSizer(box, wx.VERTICAL)
如果我再self.SetSizer(bsizer)那么这个staticbox就能正常显示在整个面板上,但是我这里又用了其他布局方式啊,如sizer =
rcs.RowColSizer(),编辑框,按钮等都放在sizer里的,self.SetSizer只能设置一个吧。。如果这样。。我该如何处理呢。。

 在05-11-2,张骏 <zhangj at foreseen-info.com> 写道:
>
> 在 2005-11-02 09:54:07,mydooom <mydooom at gmail.com> 写道:
> > sizer = rcs.RowColSizer()
> > sizer.Add(wx.StaticText(self, -1, "用户名:", (20, 30)),row=1,col=1)
> > sizer.Add(wx.StaticText(self, -1, "密码:", (20, 60)),row=1,col=1)
> >
> >
> 如上两行,文本框的位置是根据(20,30)这个定的,而不是row..和col呢,即使把(20,30)取了,虽然位置发生改变,但是密码框的row和col不管怎么改变位置都重叠了呢,各位请指点下。还有你们用什么布局管理器啊??
>
> 如果用sizer,row,col参数指定的就是控件的位置。
> 你将两个控件都指定在第一行,第一列肯定会重叠
> 建议看看wxPython 的demo
>
> --
> 张骏 <zhangj at foreseen-info.com>
>
> 敏捷来自Python
> 简单源于我们
> 丰元信信息技术有限公司
>
>
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051102/dfc0dfda/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月02日 星期三 14:01

mydooom mydooom at gmail.com
Wed Nov 2 14:01:56 HKT 2005

呵呵,当然SetSizer了,不然完全没效果啊

在05-11-2,Qiangning Hong <hongqn at gmail.com> 写道:
>
> mydooom wrote:
> > sizer = rcs.RowColSizer()
> > sizer.Add(wx.StaticText(self, -1, "用户名:", (20, 30)),row=1,col=1)
> > sizer.Add(wx.StaticText(self, -1, "密码:", (20, 60)),row=1,col=1)
> >
> > 如上两行,文本框的位置是根据(20,30)这个定的,而不是row..和col呢,即使把
> > (20,30)取了,虽然位置发生改变,但是密码框的row和col不管怎么改变位置都重
> > 叠了呢,各位请指点下。
>
> 问一下,你SetSizer了吗?
>
> > 还有你们用什么布局管理器啊??
>
> 我用的最多的就是BoxSizer了,简单好用,:)
>
> --
> Qiangning Hong, Registered Linux User #396996
> My Blog: http://www.hn.org/hongqn
> RSS: http://feeds.feedburner.com/hongqn
>
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051102/ce5bec7e/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月02日 星期三 14:11

mydooom mydooom at gmail.com
Wed Nov 2 14:11:42 HKT 2005

我也是试了下boxsizer,也不知道各个参数的作用,出来的效果就是乱排,能说说各个参数的意思吗吗?谢谢。

在05-11-2,mydooom <mydooom at gmail.com> 写道:
>
> 呵呵,当然SetSizer了,不然完全没效果啊
>
> 在05-11-2,Qiangning Hong <hongqn at gmail.com> 写道:
> >
> > mydooom wrote:
> > > sizer = rcs.RowColSizer()
> > > sizer.Add(wx.StaticText(self, -1, "用户名:", (20, 30)),row=1,col=1)
> > > sizer.Add(wx.StaticText(self, -1, "密码:", (20, 60)),row=1,col=1)
> > >
> > > 如上两行,文本框的位置是根据(20,30)这个定的,而不是row..和col呢,即使把
> > > (20,30)取了,虽然位置发生改变,但是密码框的row和col不管怎么改变位置都重
> > > 叠了呢,各位请指点下。
> >
> > 问一下,你SetSizer了吗?
> >
> > > 还有你们用什么布局管理器啊??
> >
> > 我用的最多的就是BoxSizer了,简单好用,:)
> >
> > --
> > Qiangning Hong, Registered Linux User #396996
> > My Blog: http://www.hn.org/hongqn
> > RSS: http://feeds.feedburner.com/hongqn
> >
> > _______________________________________________
> > python-chinese list
> > python-chinese at lists.python.cn
> > http://python.cn/mailman/listinfo/python-chinese
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051102/ceefcda5/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月02日 星期三 16:58

张骏 zhangj at foreseen-info.com
Wed Nov 2 16:58:07 HKT 2005

在 2005-11-02 13:39:32,mydooom <mydooom at gmail.com> 写道:
> 那个只是测试的,结果不是这个问题,是没有写self.SetSizer。。
> 现在还有个问题,我用了StaticBox如下:
> box = wx.StaticBox(self, -1, "登陆")
> bsizer = wx.StaticBoxSizer(box, wx.VERTICAL)
> 如果我再self.SetSizer(bsizer)那么这个staticbox就能正常显示在整个面板上,但是我这里又用了其他布局方式啊,如sizer =
> rcs.RowColSizer(),编辑框,按钮等都放在sizer里的,self.SetSizer只能设置一个吧。。如果这样。。我该如何处理呢。。
> 
>  在05-11-2,张骏 <zhangj at foreseen-info.com> 写道:
> >
> > 在 2005-11-02 09:54:07,mydooom <mydooom at gmail.com> 写道:
> > > sizer = rcs.RowColSizer()
> > > sizer.Add(wx.StaticText(self, -1, "用户名:", (20, 30)),row=1,col=1)
> > > sizer.Add(wx.StaticText(self, -1, "密码:", (20, 60)),row=1,col=1)
> > >
> > >
> > 如上两行,文本框的位置是根据(20,30)这个定的,而不是row..和col呢,即使把(20,30)取了,虽然位置发生改变,但是密码框的row和col不管怎么改变位置都重叠了呢,各位请指点下。还有你们用什么布局管理器啊??
> >
> > 如果用sizer,row,col参数指定的就是控件的位置。
> > 你将两个控件都指定在第一行,第一列肯定会重叠
> > 建议看看wxPython 的demo
> >
> > --
> > 张骏 <zhangj at foreseen-info.com>
> >
> > 敏捷来自Python
> > 简单源于我们
> > 丰元信信息技术有限公司
> >
> >
> > _______________________________________________
> > python-chinese list
> > python-chinese at lists.python.cn
> > http://python.cn/mailman/listinfo/python-chinese
> >

bsizer做为控件放入主sizer中

self.SetSizer( sizer )


-- 
张骏 <zhangj at foreseen-info.com>

敏捷来自Python
简单源于我们
丰元信信息技术有限公司



[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月02日 星期三 17:53

limodou limodou at gmail.com
Wed Nov 2 17:53:25 HKT 2005

在 05-11-2,mydooom<mydooom at gmail.com> 写道:
> 我也是试了下boxsizer,也不知道各个参数的作用,出来的效果就是乱排,能说说各个参数的意思吗吗?谢谢。
>

看文档更仔细,有时真不好说明。

--
I like python!
My Donews Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月03日 星期四 10:49

mydooom mydooom at gmail.com
Thu Nov 3 10:49:37 HKT 2005

带的DEMO。。也没有说明参数的用意。。不知道哪还有文档

在05-11-2,limodou <limodou at gmail.com> 写道:
>
> 在 05-11-2,mydooom<mydooom at gmail.com> 写道:
> > 我也是试了下boxsizer,也不知道各个参数的作用,出来的效果就是乱排,能说说各个参数的意思吗吗?谢谢。
> >
>
> 看文档更仔细,有时真不好说明。
>
> --
> I like python!
> My Donews Blog: http://www.donews.net/limodou
>
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051103/6baed1f9/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年11月03日 星期四 12:15

Qiangning Hong hongqn at gmail.com
Thu Nov 3 12:15:49 HKT 2005

mydooom wrote:
> 带的DEMO。。也没有说明参数的用意。。不知道哪还有文档

BoxSizer.Add(item, proprtion, flag, border)
第一个参数是要让sizer管理的控件,第二个参数是该控件在sizer中占用大小的比
例,第三个参数是一些标志量,如对齐、边框方向等等,第四个参数是边框宽度。

我举一个例子,你看看,有什么地方不明白的再问。

# 创建一个水平方向的BoxSizer
sizer = wx.BoxSizer(wx.HORIZONTAL)

sizer.Add(button1, 0, wx.ALIGN_BOTTOM|wx.ALL, 5)
sizer.Add(button2, 2, wx.GROW|wx.ALL, 10)
sizer.Add(button3, 1, wx.GROW|wx.TOP|wx.BOTTOM, 3)

这个sizer控制了button[123]的大小的位置,其中:
button1大小不受sizer控制,靠下对齐,四周都有宽度为5像素的边框。
button2水平方向占sizer全宽度除去button1后的2/3,垂直方向填满sizer
(wx.GROW的作用),四周都有宽度为10像素的边框。
button3水平方向占sizer全宽度除去button1后的1/3,垂直方向填满sizer
(wx.GROW的作用),上部和下部有3像素的边框,左右没有边框。

在把demo中的那些例子和代码对照,应该就能明白的。

在随机文档中有一章节叫"Sizer Overview",下面有好几篇讲sizer的文章,好好
读一读吧。

另:希望你能把gmail中的rich formatting关掉,不要向列表发送HTML邮件。

-- 
Qiangning Hong, Registered Linux User #396996
My Blog: http://www.hn.org/hongqn
RSS: http://feeds.feedburner.com/hongqn


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号