当前位置: 首页 > 工具软件 > wxRuby > 使用案例 >

wxRuby 中的布局控件

云慈
2023-12-01
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

 类似资料: