wxRuby是wxWidgets的Ruby绑定,所以对于布局类的使用和wxWidgets中一样,主要功能是在 sizer.add 函数中设置有关标志做到的。
下面是BoxSizer的一个例子
require "wx" #载入wx库文件
include Wx #包含进Wx模块
class MinimalApp < App
def on_init
mainFrame = MyFrame.new
mainFrame.show()
end
end
MinimalApp.new.main_loop #建立MinimalApp实例并进入消息循环
#自定义窗口类MyFrame,用于做为主窗口
class MyFrame < Frame
def initialize
super(nil, -1, "Changing Icons!", Wx::DEFAULT_POSITION, Wx::Size.new(425,450))
@mainPanel=Panel.new(self,1003,Wx::DEFAULT_POSITION,Wx::Size.new(425,450)) #建立一个主panel,用于放置所有控件
@notebook_style = Wx::AUI_NB_DEFAULT_STYLE|Wx::AUI_NB_TAB_EXTERNAL_MOVE|Wx::NO_BORDER
@notebook = Wx::AuiNotebook.new(@mainPanel,1005,DEFAULT_POSITION,Wx::Size.new(400,450),@notebook_style)
#@notebook.set_left_dockable(true)
@notebookPage1 = Panel.new(@notebook,1006)
@notebookPage2 = Panel.new(@notebook,1006)
@notebook.add_page(@notebookPage1,"第一")
@notebook.add_page(@notebookPage2,"第二")
@sizer= BoxSizer.new(VERTICAL)
#sizer.add()函数第二个参数是缩放因子,0表示固定大小,其它值表示对空白空间占用大小的划分比例,如果有两个控件其参数
#值分别为 1 2 则表示 第1个 占空白大小的 1/3 第二个为 2/3
#第三个参数为布局控件标记, 这个有很重要的作用,比如 控件随布局控件一起改变大小, 控件上下左右的边距等等
#详细的标记种类及说明可以查看 <<使用wxWidgets进行跨平台程序开发>> 的第240页
@sizer.add(@notebook,1,Wx::GROW|Wx::ALL,10)
@mainPanel.set_sizer(@sizer)
end
end
转载于:https://www.cnblogs.com/sunglen/archive/2008/08/20/1272468.html