按钮和开关

就像标题所说,这些控件并不是按钮,但是有一些处理按钮所需要的功能。

Gtk::Bin
|   Gtk::Window
|   |   Gtk::Button
|   |   |   Gtk::ToggleButton
|   |   |   |   Gtk::CheckButton
|   |   |   |   |   Gtk::RadioButton
|   |   |   Gtk::ColorButton
|   |   |   Gtk::FontButton
|   |   |   Gtk::LinkButton
|   |   |   Gtk::OptionMenu
|   |   |   Gtk::ScaleButton
|   |   |   |   Gtk::VolumeButton
Gtk::Box
|   Gtk::ButtonBox
|   |   Gtk::HButtonBox
|   |   Gtk::VButtonBox

上述继承树清晰地表示出了两种继承关系。这两者的关系在于这些盒子是用来放置按钮的。 Gtk::ButtonBox 存在的主要目的是包含 Gtk::HButtonBox 和 Gtk::VBottonBox 控件的属性。

一旦用 Gtk::HButtonBox.new 或者 Gtk::VButtonBox.new 创建了按钮盒子,你就需要为盒子里面的按钮设置布局样式,你可以使用下面的方法完成:

  • Gtk::ButtonBox#layout_style - 查看按钮盒子里面组织按钮的方式
  • Gtk::ButtonBox#layout_style=(style) - 修改按钮盒子组织按钮的方式
  • Gtk::ButtonBox#set_layout_style(style) - 同 Gtk::ButtonBox#layout_style= 一样

在上面的方法调用中,可选的参数是以下几种:

Gtk::ButtonBox 样式

用来指定 Gtk::ButtonBox 中组织它包含的按钮的方式:

  • DEFAULT_STYLE - 默认布局
  • SPREAD - 均匀分布按钮
  • EDGE - 按钮分布在盒子边缘
  • START - 按钮被放置子盒子的开端(水平盒子的左边,垂直盒子的上面)
  • END - 按钮被放置在盒子的末端(水平盒子的右边,垂直盒子的下边)
  • CENTER

最好,你可以使用 Gtk::ButtonBox#add_child 来添加子类。