- PyGTK 教程
 - PyGTK - 主页
 - PyGTK - 简介
 - PyGTK - 环境
 - PyGTK - 你好世界
 - PyGTK - 重要类
 - PyGTK - 窗口类
 - PyGTK - 按钮类
 - PyGTK - 标签类
 - PyGTK - 入门级
 - PyGTK - 信号处理
 - PyGTK - 事件处理
 - PyGTK - 容器
 - PyGTK - 盒子类
 - PyGTK - ButtonBox 类
 - PyGTK - 对齐类
 - PyGTK - EventBox 类
 - PyGTK - 布局类
 - PyGTK - 组合框类
 - PyGTK - ToggleButton 类
 - PyGTK - CheckButton 类
 - PyGTK - 单选按钮类
 - PyGTK - 菜单栏、菜单和菜单项
 - PyGTK - 工具栏类
 - PyGTK - 调整类
 - PyGTK - 范围类
 - PyGTK - 规模类
 - PyGTK - 滚动条类
 - PyGTK - 对话框类
 - PyGTK - 消息对话框类
 - PyGTK - AboutDialog 类
 - PyGTK - 字体选择对话框
 - PyGTK - 颜色选择对话框
 - PyGTK - 文件选择器对话框
 - PyGTK - 笔记本类
 - PyGTK - 框架类
 - PyGTK - AspectFrame 类
 - PyGTK - TreeView 类
 - PyGTK - 窗格类
 - PyGTK - 状态栏类
 - PyGTK - ProgressBar 类
 - PyGTK - 视口类
 - PyGTK - 滚动窗口类
 - PyGTK - 箭头类
 - PyGTK - 图像类
 - PyGTK - DrawingArea 类
 - PyGTK - SpinButton 类
 - PyGTK - 日历类
 - PyGTK - 剪贴板类
 - PyGTK - 标尺类
 - PyGTK - 超时
 - PyGTK - 拖放
 
- PyGTK 有用资源
 - PyGTK - 快速指南
 - PyGTK - 有用的资源
 - PyGTK - 讨论
 
PyGTK - SpinButton 类
SpinnButton 小部件(通常称为 Spinner)是一个 gtk.Entry 小部件,其右侧带有向上和向下箭头。用户可以直接在其中键入数值,或者使用向上和向下箭头递增或递减。gtk.SpinButton 类继承自 gtk.Entry 类。它使用 gtk.Adjustment 对象,可以限制微调器中数值的范围和步长。
SpinButton 小部件是使用以下构造函数创建的 -
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) - 设置为每次按下鼠标左键应用增量的步长值和为每次按下鼠标中键应用增量的页面值。
SpinButton.set_range() - 设置旋转按钮的最小和最大允许值。
SpinButton.set_value() - 以编程方式将旋转按钮设置为新值。
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 小部件发出以下信号 -
| 改变值 | 当通过键盘操作更改旋转按钮值时会发出此信号 | 
| 输入 | 当值发生变化时会发出此信号。 | 
| 输出 | 当旋转按钮显示值更改时会发出此信号。如果处理程序成功设置文本并且不需要进一步处理,则返回True 。 | 
| 价值改变 | 当更改旋转按钮显示的任何设置发生更改时,会发出此信号。 | 
| 包裹 | 这是在旋转按钮从最大值回绕到最小值后立即发出的,反之亦然。 | 
例子
以下示例使用三个 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()
执行后,上述代码将产生以下输出 -
