Ruby/TK - Button 按钮小部件
说明
button非常适合用户与之交互,特别是按下以执行某些操作。 按钮是显示文本字符串、位图或图像的小部件。 如果显示文本,则必须全部使用一种字体,但可以在屏幕上占据多行。
根据 state 选项,按钮可以以三种不同方式中的任何一种显示自己。 它可以做成raised、sunken或flat,也可以做成 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 指定按钮是否应同时显示图像和文本,如果是,则图像应相对于文本放置在何处。 此选项的有效值为 bottom、center、left、none、right 和top。默认值为 none,这意味着按钮将显示图像或文本,具体取决于 image 和 bitmap 选项的值。 |
3. | height => Integer
指定按钮的所需高度。 |
4 | state => String 指定按钮的三种状态之一:正常、活动或禁用(normal, active, disabled)。 在正常状态下,按钮使用 foreground 和 background 选项显示。活动状态通常在指针位于按钮上方时使用。 在活动状态下,按钮使用 activeforeground 和 activebackground 选项显示。 禁用状态意味着按钮应该是不敏感的: |
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。