Skip to content

Latest commit

 

History

History
255 lines (163 loc) · 9.08 KB

button_widgets.rst

File metadata and controls

255 lines (163 loc) · 9.08 KB

按钮控件

按钮

按钮控件是另一个经常使用的控件。按钮通常会添加一个当点击按钮时要调用的函数。

Gtk.Button 按钮控件可以包含任何有效的子控件,即可以包含绝大多数的其他标准的 Gtk.Widget 控件。最常会添加的子控件是 Gtk.Label

通常,你想要连接一个按钮的 "clicked" 信号,该信号当你按下并释放鼠标按钮时会触发。

按钮对象

如果lable不是 None ,会创建一个带有 Gtk.LabelGtk.Button 按钮, 标签会包含给定的文本。

如果 stock 不为 None ,创建的按钮包含 stock item <stock-items> 的图像和文本。

如果 use_underlineTrue, 则label中的下划线后面的字符为助记符加速键。

set_label(label)

设置按钮标签的内容为 label

set_use_underline(use_underline)

如果为 True ,按钮标签文本中的下划线预示着下一个字符用于助记符加速键。

例子

image

examples/button_example.py

ToggleButton

Gtk.ToggleButtonGtk.Button 非常类似,但是当点击后, Toggle按钮保持激活状态,知道再次点击。当按钮的状态改变时, "toggled" 信号会被触发。

要获得 Gtk.ToggleButton 的状态,我们可以调用 Gtk.ToggleButton.get_active 方法, 如果Toggle按钮处于按下状态,函数返回 True 。 当然你也可以设置Toggle按钮的状态——通过 Gtk.ToggleButton.set_active 方法。 如果你这样做了,并且Toggle按钮的状态变了,那么 "toggle" 信号会被触发。

ToggleButton 对象

参数与 Gtk.Button 的构造函数一样。

get_active()

返回Toggle按钮当前的状态。如果按钮处于按下状态返回 True ,否则返回 False

set_active(is_active)

设置Toggle按钮的状态,如果想设置按钮为按下状态则传递 True ,否则传递False 。 会导致 "toggle" 信号被触发。

例子

image

examples/togglebutton_example.py

CheckButton(复选按钮)

Gtk.CheckButton 继承自 Gtk.ToggleButton 。唯一的不同是 Gtk.CheckButton 外观。 Gtk.CheckButton 会在 Gtk.ToggleButton 的旁边放置一个分离的控件——通常是一个 Gtk.Label 。 "toggled" 信号, Gtk.ToggleButton.set_activeGtk.ToggleButton.get_active 则继承过来了。

CheckButton 对象

参数与 Gtk.Button 同。

RadioButton(单选按钮)

与复选按钮一样,单选按钮也是继承自 Gtk.ToggleButton ,但是单选按钮 按照组的方式来工作,并且在组中只有一个 Gtk.RadioButton 可以被选中。 因此,Gtk.RadioButton 是一种让用户从很多选项中选择一个的方法。

单选按钮Radio buttons可以使用以下任何一个静态函数创建: Gtk.RadioButton.new_from_widgetGtk.RadioButton.new_with_label_from_widget 或者 Gtk.RadioButton.new_with_mnemonic_from_widget 。 一个组中第一个radio button创建时 group 参数传递 None ,在随后的调用中, 你想要将此按钮加入的组应该作为参数传递。

当第一次运行时,组内的第一个radio按钮会是激活状态的。可以通过 Gtk.ToggleButton.set_active 传递 True 来修改。

在创建后改变 Gtk.RadioButton 控件的分组信息可以通过调用 Gtk.RadioButton.join_group 来实现。

RadioButton 对象

new_from_widget(group)

创建一个新的 Gtk.RadioButton ,将其添加到与 group 控件同一组中。 如果 groupNone ,会创建一个新的组。

new_with_label_from_widget(group, label)

创建一个 Gtk.RadioButton 。标签控件内的文本会被设置为 lablegroup 参数与 new_from_widget 相同。

new_with_mnemonic_from_widget(group, label)

new_with_label_from_widget 相同,但是 label 中的下划线会被解析为按钮的助记符。

join_group(group)

将radio button加入到另一个 Gtk.RadioButton 对象的组中。

Example

image

examples/radiobutton_example.py

LinkButton

Gtk.LinkButton 是带有链接的 Gtk.Button 。与浏览器中使用的链接类似—— 当点击时会触发一个动作,当要快速的链接到一个资源时很有用。

绑定到 Gtk.LinkButton 的URI可以通过 Gtk.LinkButton.set_uri 来设置,可以通过 Gtk.LinkButton.get_uri 来获取绑定的URI。

LinkButton 对象

uri 是需要加载的网页的地址。label是显示的文本。如果label为 None 或者忽略,则显示网址。

get_uri()

获取 set_uri 设置的URI。

set_uri(uri)

设置按钮指向的 uri 地址。作为副作用,会取消按钮的 'visited' 状态。

Example

image

examples/linkbutton_example.py

SpinButton

Gtk.SpinButton 是一种让用户设置某些属性的值的完美方法。 Gtk.SpinButton 不是让用户直接在 Gtk.Entry 中输入一个数字, 而是提供两个箭头让用户增加或减小显示的值。值也可以直接输入,可以附加检查以保证 输入的值在要求的范围内。 Gtk.SpinButton 的主要属性通过 Gtk.Adjustment 来设置。

要改变 Gtk.SpinButton 显示的值,使用 Gtk.SpinButton.set_value 。 通过Gtk.SpinButton.get_value 或者 Gtk.SpinButton.get_value_as_int 获取按钮的值—— 根据你的要求可以是整数或浮点值。

当spin button显示浮点数时,你可以通过 Gtk.SpinButton.set_digits 调整显示的浮点数的位数。

默认情况下, Gtk.SpinButton 接受文本数据。如果你想限制其为数值,可以调用 Gtk.SpinButton.set_numeric ,并传递 True

我们也可以设置 Gtk.SpinButton 显示的更新策略。有两种可选: 默认是即使输入的数据不合法也会显示; 我们也可以设置为只有输入的值正确时才需要更新——通过调用 Gtk.SpinButton.set_update_policy

SpinButton 对象

set_adjustment(adjustment)

替换与该spin button关联的 Gtk.Adjustment

set_digits(digits)

设置spin button显示的精度——最高可以支持20个数字。

set_increments(step, page)

设置按钮值增加的 step 和 page 。这会影响当按钮的箭头按下时值的变化速度。 step是按下上下键改变的值大小,page则是指按下page up/down是改变的值大小。

set_value(value)

设置按钮的值。

get_value()

返回按钮的值——浮点数类型。

get_value_as_int()

获取按钮的值——整型。

set_numeric(numeric)

如果 numericFalse ,非数字的文本可以输入给spin button,否则只允许输入数值。

set_update_policy(policy)

设置按钮的更新行为。这决定了按钮的值是总会更新还是只有值合法时才会更新。 policy 参数的值可以是 Gtk.SpinButtonUpdatePolicy.ALWAYS 或者 Gtk.SpinButtonUpdatePolicy.IF_VALID

Adjustment 对象

Gtk.Adjustment 对象代表一个有最大与最小界限的值,也包含每次增加的 step和pagement。这在一些Gtk+窗口控件中使用,包括 Gtk.SpinButtonGtk.ViewportGtk.Range

value 为初始值, lower 为最小值, upper 为最大值, step_increment 为每次up/down键增加/减小的值, page_increment 是 按下page up/down键改变的值大小,而 page_size 代表页大小。

Example

image

examples/spinbutton_example.py