Виджет SpinnButton, часто называемый Spinner, является виджетом gtk.Entry со стрелками вверх и вниз справа. Пользователь может ввести числовое значение непосредственно в нем или увеличить или уменьшить, используя стрелки вверх и вниз. Класс gtk.SpinButton унаследован от класса gtk.Entry. Он использует объект gtk.Adjustment, с помощью которого можно ограничить диапазон и шаг числового значения в счетчике.
Виджет SpinButton создается с помощью следующего конструктора —
sp = gtk.SpinButton(adj, climb_rate, digits)
Здесь adj представляет диапазон управления объектом gtk.Adjustment , подъем — коэффициент ускорения и количество десятичных знаков, указанных цифрами.
Класс gtk.SpinButton имеет следующие методы —
-
SpinButton.set_adjustment () — устанавливает свойство «корректировки».
-
SpinButton.set_digits () — это устанавливает свойство «digits» в значение, чтобы определить количество десятичных разрядов, которые будут отображаться с помощью spinbutton.
-
SpinButton.set_increments (step, page) — Устанавливает значение шага, к которому применяется приращение, применяемое для каждого нажатия левой кнопки мыши, и значение страницы, которое является приращением, применяемым для каждого нажатия средней кнопки мыши.
-
SpinButton.set_range () — устанавливает минимальные и максимальные допустимые значения для spinbutton.
-
SpinButton.set_value () — Это устанавливает программную кнопку вращения на новое значение.
-
SpinButton.update_policy () — допустимыми значениями являются gtk.UPDATE_ALWAYS и gtk.UPDATE_VALID
-
SpinButton.spin (direction, increment = 1) — увеличивает или уменьшает значение Spinner в указанном направлении.
SpinButton.set_adjustment () — устанавливает свойство «корректировки».
SpinButton.set_digits () — это устанавливает свойство «digits» в значение, чтобы определить количество десятичных разрядов, которые будут отображаться с помощью spinbutton.
SpinButton.set_increments (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 | вперед step_increment |
gtk.SPIN_STEP_BACKWARD | назад шаг за шагом |
gtk.SPIN_PAGE_FORWARD | вперед step_increment |
gtk.SPIN_PAGE_BACKWARD | назад шаг за шагом |
gtk.SPIN_HOME | перейти к минимальному значению |
gtk.SPIN_END | перейти к максимальному значению |
gtk.SPIN_USER_DEFINED | добавить приращение к значению |
-
SpinButton.set_wrap () — если для wrap задано значение True, значение кнопки прокрутки переходит к противоположному пределу, когда верхний или нижний предел диапазона превышает.
SpinButton.set_wrap () — если для wrap задано значение True, значение кнопки прокрутки переходит к противоположному пределу, когда верхний или нижний предел диапазона превышает.
Виджет gtk.SpinButton излучает следующие сигналы:
Изменение значение | Это испускается, когда значение 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()
После выполнения приведенный выше код выдаст следующий вывод: