Ruby/TK - Button 按钮小部件

说明

button非常适合用户与之交互,特别是按下以执行某些操作。 按钮是显示文本字符串、位图或图像的小部件。 如果显示文本,则必须全部使用一种字体,但可以在屏幕上占据多行。

根据 state 选项,按钮可以以三种不同方式中的任何一种显示自己。 它可以做成raisedsunkenflat,也可以做成 flash。

语法

这是创建此小部件的简单语法 −

TkButton.new(root) {
   .....Standard Options....
   .....Widget-specific Options....
}

标准选项

  • activebackground
  • activeforeground
  • anchor
  • background
  • bitmap
  • borderwidth
  • cursor
  • disabledforeground
  • font
  • foreground
  • highlightbackground
  • highlightcolor
  • highlightthickness
  • image
  • justify
  • padx
  • pady
  • relief
  • repeatdelay
  • repeatinterval
  • takefocus
  • text
  • textvariable
  • underline
  • wraplength

这些选项已在前一章中描述。


小部件特定选项

序号 选项 & 描述
1

command => String

指定与按钮关联的 Ruby 命令。 当鼠标按钮 1 在按钮窗口上释放时,通常会调用此 命令。 在这里,您可以关联要在鼠标单击时执行的 Ruby 方法。 我在下面给出的示例中完成了它。

2

compound => String

指定按钮是否应同时显示图像和文本,如果是,则图像应相对于文本放置在何处。 此选项的有效值为 bottomcenterleftnonerighttop。默认值为 none,这意味着按钮将显示图像或文本,具体取决于 imagebitmap 选项的值。

3. height => Integer

指定按钮的所需高度。

4

state => String

指定按钮的三种状态之一:正常、活动或禁用(normal, active, disabled)。 在正常状态下,按钮使用 foregroundbackground 选项显示。活动状态通常在指针位于按钮上方时使用。 在活动状态下,按钮使用 activeforegroundactivebackground 选项显示。 禁用状态意味着按钮应该是不敏感的:

5

width => Integer

指定按钮的所需宽度。


事件绑定

Ruby/Tk 自动为按钮创建类绑定,为它们提供以下默认行为 −

  • 一个按钮在鼠标经过时激活,在鼠标离开按钮时停用。

  • 只要在按钮上按下鼠标按钮 1,按钮的浮雕就会变为凹陷,而当按钮 1 稍后释放时,浮雕会恢复到其原始值。

  • 如果在按钮上按下鼠标按钮 1,然后在按钮上释放,则调用该按钮。 但是,如果释放按钮 1 时鼠标不在按钮上,则不会发生调用。

  • 当按钮具有输入焦点时,空格键会导致按钮被调用。

如果按钮的状态是disabled,那么上述动作都不会发生:按钮完全没有响应。

示例

require 'tk'

def myproc
   puts "The user says OK."
   exit
end

root = TkRoot.new
btn_OK = TkButton.new(root) do
   text "OK"
   borderwidth 5
   underline 0
   state "normal"
   cursor "watch"
   font TkFont.new('times 20 bold')
   foreground  "red"
   activebackground "blue"
   relief      "groove"
   command (proc {myproc})
   pack("side" => "right",  "padx"=> "50", "pady"=> "10")
end
Tk.mainloop

这将产生以下结果,如果您单击此按钮,则将执行 ruby 方法 myproc

Ruby/Tk Button

❮ Ruby Tk 指南