- PyGTK 教程
- PyGTK - 首页
- PyGTK - 简介
- PyGTK - 环境
- PyGTK - Hello World
- PyGTK - 重要类
- PyGTK - Window 类
- PyGTK - Button 类
- PyGTK - Label 类
- PyGTK - Entry 类
- PyGTK - 信号处理
- PyGTK - 事件处理
- PyGTK - 容器
- PyGTK - Box 类
- PyGTK - ButtonBox 类
- PyGTK - Alignment 类
- PyGTK - EventBox 类
- PyGTK - Layout 类
- PyGTK - ComboBox 类
- PyGTK - ToggleButton 类
- PyGTK - CheckButton 类
- PyGTK - RadioButton 类
- PyGTK - MenuBar、Menu 和 MenuItem
- PyGTK - Toolbar 类
- PyGTK - Adjustment 类
- PyGTK - Range 类
- PyGTK - Scale 类
- PyGTK - Scrollbar 类
- PyGTK - Dialog 类
- PyGTK - MessageDialog 类
- PyGTK - AboutDialog 类
- PyGTK - 字体选择对话框
- PyGTK - 颜色选择对话框
- PyGTK - 文件选择对话框
- PyGTK - Notebook 类
- PyGTK - Frame 类
- PyGTK - AspectFrame 类
- PyGTK - TreeView 类
- PyGTK - Paned 类
- PyGTK - Statusbar 类
- PyGTK - ProgressBar 类
- PyGTK - Viewport 类
- PyGTK - Scrolledwindow 类
- PyGTK - Arrow 类
- PyGTK - Image 类
- PyGTK - DrawingArea 类
- PyGTK - SpinButton 类
- PyGTK - Calendar 类
- PyGTK - Clipboard 类
- PyGTK - Ruler 类
- PyGTK - 超时
- PyGTK - 拖放
- PyGTK 有用资源
- PyGTK - 快速指南
- PyGTK - 有用资源
- PyGTK - 讨论
PyGTK - SpinButton 类
SpinButton 小部件,通常称为微调器,是一个带有向上和向下箭头在其右侧的 gtk.Entry 小部件。用户可以直接在其中键入数值,或使用向上和向下箭头递增或递减。gtk.SpinButton 类继承自 gtk.Entry 类。它使用一个 gtk.Adjustment 对象,通过该对象可以限制微调器中数值的范围和步长。
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.set_increments(step, page) - 这设置步长值,每次左键单击时应用增量,以及页面值,每次中键单击时应用增量。
SpinButton.set_range() - 这设置微调器的最小和最大允许值。
SpinButton.set_value() - 这以编程方式将微调器设置为新值。
SpinButton.update_policy() - 有效值为 gtk.UPDATE_ALWAYS 和 gtk.UPDATE_VALID
SpinButton.spin(direction, increment=1) - 这在指定的方向上递增或递减微调器的值。
以下是预定义的方向常量:
| 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 小部件构建一个简单的**日期选择器**。日期选择器应用了一个 Adjustment 对象来限制值在 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()
执行上述代码后,将产生以下输出: