Учебники

PyGTK — класс SpinButton

Виджет 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()

После выполнения приведенный выше код выдаст следующий вывод: