PyGTK SpinButton类

PyGTK SpinButton类

SpinnButton 小部件,通常称为 Spinner,是一个带有上下箭头的 gtk.Entry 小部件。用户可以直接在其中键入数值,或者使用上下箭头进行增减。gtk.SpinButton 类继承自 gtk.Entry 类。它使用一个 gtk.Adjustment 对象来限制 spinner 中数值的范围和步长。

可以使用以下构造器创建 SpinButton 小部件 −

sp = gtk.SpinButton(adj, climb_rate, digits)

在这里,adj代表控制范围的gtk.Adjustment对象, climb_rate是一个加速因子,digits指定小数位数。

gtk.SpinButton类有以下方法:

  • SpinButton.set_adjustment() – 设置”adjustment”属性。
  • SpinButton.set_digits() – 设置”digits”属性,确定spinbutton显示的小数位数。
  • SpinButton.set_increments(step, page) – 设置逐步增量值,每次按下左键应用增量值,page值为每次按下中键应用的增量值。
  • SpinButton.set_range() – 设置spinbutton的最小和最大可允许值。
  • SpinButton.set_value() – 以编程方式设置spin button的新值。
  • SpinButton.update_policy() – 有效值为gtk.UPDATE_ALWAYS和gtk.UPDATE_VALID。
  • SpinButton.spin(direction, increment=1) – 在指定的方向上增加或减小Spinner的值。

以下是预定义的方向常量:

gtk.SPIN_STEP_FORWARD 步进增加 step_increment
gtk.SPIN_STEP_BACKWARD 步进减少 step_increment
gtk.SPIN_PAGE_FORWARD 一页增加 step_increment
gtk.SPIN_PAGE_BACKWARD 一页减少 step_increment
gtk.SPIN_HOME 移动到最小值
gtk.SPIN_END 移动到最大值
gtk.SPIN_USER_DEFINED 将增量添加到值
  • SpinButton.set_wrap() — 如果wrap为True,则当范围的上限或下限超过时,旋转按钮的值会循环到相反的限制位置。

gtk.SpinButton小部件发出以下信号−

change-value 当键盘动作改变旋钮的值时触发此事件
input 值改变时触发此事件
output 当旋钮的显示值改变时触发此事件。如果处理程序成功设置了文本并且不需要进一步处理,则返回 True
value-changed 当改变旋钮显示的任何设置时触发此事件。
wrapped 当旋钮从最大值转到最小值或者从最小值转到最大值时立即触发此事件。

示例

以下示例使用三个SpinButton小部件构建了一个简单的 日期选择器 。日期选择器应用了一个调整对象来限制值在1-31之间。第二个选择器用于选择月份1-12之间的数字。第三个选择器选择了年份范围在2000-2020之间。

注意代码:

import gtk

class PyApp(gtk.Window):

   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("SpinButton Demo")
      self.set_size_request(300, 200)
      self.set_position(gtk.WIN_POS_CENTER)
      self.set_border_width(20)

      vbox = gtk.VBox(False, 5)
      hbox = gtk.HBox(True, 3)
      lbl1 = gtk.Label("Date")
      hbox.add(lbl1)

      adj1 = gtk.Adjustment(1.0, 1.0, 31.0, 1.0, 5.0, 0.0)
      spin1 = gtk.SpinButton(adj1, 0, 0)
      spin1.set_wrap(True)

      hbox.add(spin1)
      lbl2 = gtk.Label("Month")
      hbox.add(lbl2)

      adj2 = gtk.Adjustment(1.0, 1.0, 12.0, 1.0, 5.0, 0.0)
      spin2 = gtk.SpinButton(adj2, 0, 0)
      spin2.set_wrap(True)

      hbox.add(spin2)
      lbl3 = gtk.Label("Year")
      hbox.add(lbl3)

      adj3 = gtk.Adjustment(1.0, 2000.0, 2020.0, 1.0, 5.0, 0.0)
      spin3 = gtk.SpinButton(adj3, 0, 0)
      spin3.set_wrap(True)
      hbox.add(spin3)

      frame = gtk.Frame()
      frame.add(hbox)
      frame.set_label("Date of Birth")

      vbox.add(frame)
      self.add(vbox)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
PyApp()
gtk.main()

在执行上面的代码时,将会产生以下输出:

PyGTK SpinButton类

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程