PyGTK SpinButton类

PyGTK SpinButton类

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

SpinButton widget是用下面的构造函数创建的

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

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

gtk.SpinButton类有以下方法—-。

  • SpinButton.set_adjustment() – 这设置了 “调整 “属性。

  • SpinButton.set_digits() – 这将 “digits “属性设置为确定旋钮要显示的小数位数的值。

  • SpinButton.set_increments(step, page) – 这设置了每次按下鼠标左键都会应用增量的step值,以及每次按下鼠标中键都会应用增量的page值。

  • SpinButton.set_range() – 这设置了Spinbutton的最小和最大允许值。

  • SpinButton.set_value() – 这是通过编程将旋转按钮设置为一个新的值。

  • SpinButton.update_policy() – 有效值是gtk.UPDATE_ALWAYS和gtk.UPDATE_VALID。

  • SpinButton.spin(direction, increment=1) – 这将在指定的方向上增加或减少Spinner的值。

以下是预定义的方向常数 –

gtk.SPIN_STEP_FORWARD 以步进方式向前递增
gtk.SPIN_STEP_BACKWARD 向后按步长递增
gtk.SPIN_PAGE_FORWARD 按步长向前
gtk.SPIN_PAGE_BACKWARD 向后按步长递增
gtk.SPIN_HOME 移动到最小值
gtk.SPIN_END 移动到最大值
gtk.SPIN_USER_DEFINED 增加值的增量
  • SpinButton.set_wrap() – 如果wrap是True,當超過範圍的上限或下限時,旋轉按鈕的值會包裹到相反的限制。

gtk.SpinButton widget會發出以下的信號 –

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教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程