关于wxSizer的使用

这是wxWidgets论坛的中文版本。在这里,您可以用您的母语汉语讨论上面任一子论坛所涉及的所有关于wxWidgets的话题。欢迎大家参与到对有价值的帖子的中英互译工作中来!
Post Reply
spf9988
In need of some credit
In need of some credit
Posts: 2
Joined: Fri Dec 04, 2009 9:42 am

关于wxSizer的使用

Post by spf9988 » Fri Dec 04, 2009 9:57 am

最近有碰到一个情况,在一个必须继承自wxWindow的窗口类中中布局几个控件,于是想到了使用wxSizer,但总是不成功,所有的控件都以(0,0)开始,挤在左上角,于是做了以下几个小实验:

1、把继承自wxWindow改为继承自wxDialog和wxFrame,wxSizer效果正常。这是常规的用法,说明wxSizer的代码没有错误。
2、考虑是否在继承自wxWindow的窗口和wxSizer之间再加一层wxPanel,不知效果如何,尚待实验。(P.S.最终没有实验,不过依据下面的最终结论,应该也是不行的,wxPanel不是顶层窗口)


请高人指点,
1、wxSizer都可以用于哪些窗口类?
2、最顶层的Sizer应该SetSizer设置给parent还是this??

***通过一番实验解决了***
wxSizer可以直接使用于wxDialog, wxFrame, wxTopLevelWindow这些顶层窗口,如果用在wxWindow,需要使用SetSizer将该窗口内的顶层布局控件与顶层窗口绑定(在《使用wxWidgets进行跨平台开发》中找到了对此的说明)
Last edited by spf9988 on Mon Dec 07, 2009 2:26 am, edited 3 times in total.

spf9988
In need of some credit
In need of some credit
Posts: 2
Joined: Fri Dec 04, 2009 9:42 am

Post by spf9988 » Fri Dec 04, 2009 10:24 am

实验又有新进展,还是在继承自wxWindow的类中,这两句
parent->SetSizer( item0 );
item0->SetSizeHints( parent );
如果parent处使用的是this,则所有控件都挤在左上角,如果如上,使用parent(父窗口的指针),则Sizer效果正常。

ccnyou
Knows some wx things
Knows some wx things
Posts: 33
Joined: Fri Sep 28, 2012 8:08 am

Re: 关于wxSizer的使用

Post by ccnyou » Mon Jun 09, 2014 10:12 pm


Post Reply