Python论坛  - 讨论区

标题:[python-chinese] 请教wxpython frame的布局问题

2007年06月12日 星期二 14:31

pyman577 pyman577在sina.com
星期二 六月 12 14:31:17 HKT 2007

各位好,我做了一个wxpython的程序,使用了这样的代码来添加toolbar和
richtextctrl:
        box = wx.BoxSizer(wx.VERTICAL)
        self.toolbar = self.CreateToolBar(style=wx.TB_FLAT|wx.TB_HORZ_TEXT)
        self.toolbar.Realize()
        self.toolbar.Hide()
        box.Add(self.toolbar,0,wx.EXPAND)
        self.rtc = rt.RichTextCtrl(self,style=wx.VSCROLL|wx.HSCROLL|wx.NO_BORDER|wx.TE_MULTILINE|wx.TE_WORDWRAP)
        box.Add(self.rtc,1,wx.EXPAND)
        box.Layout()

程序运行以后发现richtextctrl缩成一个大约2x2大小的方框,并不能填满frame中
除了menubar和toolbar的剩余区域,请指教下,谢谢!
-- 



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

2007年06月12日 星期二 14:40

wang_zheng_yong wang_zheng_yong在163.com
星期二 六月 12 14:40:37 HKT 2007

SetSizer  º¯ÊýÓÃÁËÂð£¿
 
        self.SetSizer(sizer)  
        self.SetAutoLayout(True)




wang_zheng_yong
2007-06-12



·¢¼þÈË£º pyman577
·¢ËÍʱ¼ä£º 2007-06-12 14:31:26
ÊÕ¼þÈË£º python-chinese在lists.python.cn
³­ËÍ£º 
Ö÷Ì⣺ [python-chinese] Çë½Ìwxpython frameµÄ²¼¾ÖÎÊÌâ

¸÷λºÃ£¬ÎÒ×öÁËÒ»¸öwxpythonµÄ³ÌÐò£¬Ê¹ÓÃÁËÕâÑùµÄ´úÂëÀ´Ìí¼ÓtoolbarºÍ
richtextctrl£º
        box = wx.BoxSizer(wx.VERTICAL)
        self.toolbar = self.CreateToolBar(style=wx.TB_FLAT|wx.TB_HORZ_TEXT)
        self.toolbar.Realize()
        self.toolbar.Hide()
        box.Add(self.toolbar,0,wx.EXPAND)
        self.rtc = rt.RichTextCtrl(self,style=wx.VSCROLL|wx.HSCROLL|wx.NO_BORDER|wx.TE_MULTILINE|wx.TE_WORDWRAP)
        box.Add(self.rtc,1,wx.EXPAND)
        box.Layout()

³ÌÐòÔËÐÐÒÔºó·¢ÏÖrichtextctrlËõ³ÉÒ»¸ö´óÔ¼2x2´óСµÄ·½¿ò£¬²¢²»ÄÜÌîÂúframeÖÐ
³ýÁËmenubarºÍtoolbarµÄÊ£ÓàÇøÓò£¬ÇëÖ¸½ÌÏ£¬Ð»Ð»£¡
-- 


_______________________________________________
python-chinese
Post: send python-chinese在lists.python.cn
Subscribe: send subscribe to python-chinese-request在lists.python.cn
Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070612/a48eda83/attachment.htm 

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

2007年06月12日 星期二 15:11

pyman577 pyman577在sina.com
星期二 六月 12 15:11:15 HKT 2007

谢谢,我的代码改成这样
        
    def initCtrl(self):
        box = wx.BoxSizer(wx.VERTICAL)
        self.toolbar = self.CreateToolBar(style=wx.TB_FLAT|wx.TB_HORZ_TEXT)
        self.toolbar.Realize()
        self.toolbar.Hide()
        box.Add(self.toolbar,0,wx.EXPAND)
        self.rtc = rt.RichTextCtrl(self,style=wx.VSCROLL|wx.HSCROLL|wx.NO_BORDER|wx.TE_MULTILINE|wx.TE_WORDWRAP)
        box.Add(self.rtc,1,wx.EXPAND)
        self.rtc.Layout()
        self.SetSizer(box)
        self.SetAutoLayout(True)

        #FIXME: UI layout need to be fixed

    
    def onResize(self, evt):
        if evt.GetSize().height>360:
            self.SetMenuBar(self.menu)
            self.toolbar.Show()
        else:
            self.SetMenuBar(None)
            self.toolbar.Hide()
        self.Layout()
        self.rtc.Refresh()
        self.Refresh()

现在发现richtextctrl已经可以扩大到整个frame了,但是如果我将frame大小变大
,在显示出来menubar和toolbar之后,richtextctrl和toolbar之间会有一个高度
跟toolbar差不多的一个空隙,richtextctrl并没有紧跟着toolbar的底部布局。
-- 



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

2007年06月12日 星期二 17:39

Lee DYER lee.dyer在gmail.com
星期二 六月 12 17:39:54 HKT 2007

toolbarÊǺʹ°Ìå¹ØÁªµÄ°É£¬²»ÐèÒªÌí¼Óµ½sizerÀï°É£¬ÕâÑù×öµÄ»°ÊDz»ÊÇÏ൱ÓÚ´°ÌåÀïÃæÓÐÁ½¸ötoolbarÁË
Ò»¸öÔÚsizerÀïÒ»¸öÔÚ´°Ìå²Ëµ¥ÇøÓòµÄÏ·½


ÔÚ07-6-12£¬pyman577 <pyman577在sina.com> дµÀ£º
>
> лл£¬ÎҵĴúÂë¸Ä³ÉÕâÑù
>
>    def initCtrl(self):
>        box = wx.BoxSizer(wx.VERTICAL)
>        self.toolbar = self.CreateToolBar(style=wx.TB_FLAT|wx.TB_HORZ_TEXT)
>        self.toolbar.Realize()
>        self.toolbar.Hide()
>        box.Add(self.toolbar,0,wx.EXPAND)
>        self.rtc = rt.RichTextCtrl(self,style=
> wx.VSCROLL|wx.HSCROLL|wx.NO_BORDER|wx.TE_MULTILINE|wx.TE_WORDWRAP)
>        box.Add(self.rtc,1,wx.EXPAND)
>        self.rtc.Layout()
>        self.SetSizer(box)
>        self.SetAutoLayout(True)
>
>        #FIXME: UI layout need to be fixed
>
>
>    def onResize(self, evt):
>        if evt.GetSize().height>360:
>            self.SetMenuBar(self.menu)
>            self.toolbar.Show()
>        else:
>            self.SetMenuBar(None)
>            self.toolbar.Hide()
>        self.Layout()
>        self.rtc.Refresh()
>        self.Refresh()
>
> ÏÖÔÚ·¢ÏÖrichtextctrlÒѾ­¿ÉÒÔÀ©´óµ½Õû¸öframeÁË£¬µ«ÊÇÈç¹ûÎÒ½«frame´óС±ä´ó
> £¬ÔÚÏÔʾ³öÀ´menubarºÍtoolbarÖ®ºó£¬richtextctrlºÍtoolbarÖ®¼ä»áÓÐÒ»¸ö¸ß¶È
> ¸útoolbar²î²»¶àµÄÒ»¸ö¿Õ϶£¬richtextctrl²¢Ã»Óнô¸ú×ÅtoolbarµÄµ×²¿²¼¾Ö¡£
> --
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070612/7e9ef2b1/attachment.htm 

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

2007年06月12日 星期二 17:58

pyman577 pyman577在sina.com
星期二 六月 12 17:58:47 HKT 2007

晕死,果然如此,不将toolbar添加到boxsizer里面就ok了,,,实在是感谢啊,
刚从.net转过来,这些还很不习惯
-- 



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

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

    你的回复:

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

    Zeuux © 2025

    京ICP备05028076号