- 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()
執行上述程式碼後,將產生以下輸出: