Ruby/TK - 按钮部件



描述

一个按钮主要用于用户交互,特别是按下执行某些操作。按钮是一个显示文本字符串、位图或图像的小部件。如果显示文本,则所有文本必须使用单一字体,但它可以在屏幕上占用多行。

根据状态选项,按钮可以以三种不同的方式显示自身。可以使其显示为凸起凹陷平面,并且可以使其闪烁。

语法

以下是如何创建此小部件的简单语法:

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 => 字符串

指定与按钮关联的 Ruby 命令。此命令通常在鼠标按钮 1 在按钮窗口上释放时调用。在这里,您可以关联一个 Ruby 方法,以便在鼠标点击时执行。我在下面给出的示例中做到了这一点。

2

compound => 字符串

指定按钮是否应同时显示图像和文本,如果显示,则应将图像放置在文本的哪个位置。此选项的有效值为bottomcenterleftnonerighttop。默认值为none,这意味着按钮将根据imagebitmap选项的值显示图像或文本。

3. height => 整数

指定按钮所需的高度。

4

state => 字符串

指定按钮的三种状态之一:normalactivedisabled。在正常状态下,按钮使用foregroundbackground选项显示。活动状态通常在指针位于按钮上时使用。在活动状态下,按钮使用activeforegroundactivebackground选项显示。禁用状态表示按钮应该不敏感。

5

width => 整数

指定按钮所需宽度。

事件绑定

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_guide.htm
广告