PyGTK - класс записной книжки

Виджет «Блокнот» представляет собой контейнер с вкладками. Каждая вкладка в этом контейнере содержит отдельную страницу, и страницы отображаются внахлест. Любая желаемая страница становится видимой при нажатии на ярлык вкладки. Ярлыки можно настроить так, чтобы они отображались сверху или снизу, слева или справа. Контейнерный виджет с другими виджетами, помещенными в него, или один виджет помещается под каждую страницу.

Если данные для отображения слишком велики в одном представлении, они группируются на разных страницах, каждая из которых размещается на одной вкладке виджета «Блокнот». Этот вид контроля очень широко используется. Интернет-браузер, например, использует этот экран с вкладками для отображения разных страниц на разных вкладках.

Ниже приведен конструктор класса gtk.Notebook -

gtk.Notebook()

Ниже приведены часто используемые методы класса gtk.Notebook:

  • append_page(child, label)- Это добавляет страницу к записной книжке, содержащую виджет, указанный tab_label в качестве метки на вкладке. Если tab_label может иметь значение None, чтобы использовать метку по умолчанию.

  • insert_page(child, label, position) - Это вставляет страницу в записную книжку в месте, указанном позицией.

  • remove_page(index) - Это удаляет страницу по указанному индексу.

  • get_current_page() - Возвращает индекс текущей страницы.

  • set_current_page(index) - Это переключает на номер страницы, указанный в индексе.

  • set_show_tabs()- Если false, вкладки не будут видны. По умолчанию это True.

  • set_tab_pos(pos)- Устанавливает край, по которому отрисовываются вкладки для переключения страниц в записной книжке. Предопределенные константы:

    • gtk.POS_LEFT

    • gtk.POS_RIGHT

    • gtk.POS_TOP

    • gtk.POS_BOTTOM

  • set_tab_label_text(child, text) - Это создает новую метку с указанным текстом и устанавливает ее в качестве метки вкладки для страницы, содержащей дочерний элемент.

Виджет gtk.Notebook подает следующие сигналы:

изменить текущую страницу Это испускается, когда выдается запрос страницы вперед или страницы назад
вкладка фокуса Это излучается при изменении фокуса табуляцией.
страница добавлена Это излучается, когда страница добавляется в записную книжку.
страница удалена Это излучается после удаления страницы из записной книжки.
страница выбора Это излучается при выборе новой дочерней страницы.
страница переключения Это излучается при изменении страницы записной книжки.

пример

В следующем примере gtk.Notebook с тремя страницами помещается в gtk.Window верхнего уровня. Первая страница содержит VBox, в котором упакованы метка и поле ввода. На второй странице с меткой «квалификация» есть HButtonBox, в который добавлены три взаимоисключающих виджета RadioButton. На третьей странице есть объект TextView. Ярлыки страниц отображаются вверху.

Соблюдайте код -

import gtk
class PyApp(gtk.Window):
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("Notebook Demo")
      self.set_default_size(250, 200)
		
      nb = gtk.Notebook()
      nb.set_tab_pos(gtk.POS_TOP)
      vbox = gtk.VBox(False, 5)
		
      vb = gtk.VBox()
      hbox = gtk.HBox(True, 3)
		
      valign = gtk.Alignment(0.5,0.25, 0, 0)
      lbl = gtk.Label("Name of student")
		
      vb.pack_start(lbl, True, True, 10)
      text = gtk.Entry()
		
      vb.pack_start(text, True, True, 10)
      valign.add(vb)
		
      vbox.pack_start(valign)
      nb.append_page(vbox)
      nb.set_tab_label_text(vbox, "Name")
      hb = gtk.HButtonBox()
		
      btn1 = gtk.RadioButton(None,"Degree")
      hb.add(btn1)
		
      btn2 = gtk.RadioButton(btn1,"P.G.")
      hb.add(btn2)
		
      btn3 = gtk.RadioButton(btn1,"Doctorate")
      hb.add(btn3)
		
      nb.append_page(hb)
      nb.set_tab_label_text(hb, "Qualification")
		
      tv = gtk.TextView()
      nb.append_page(tv)
      nb.set_tab_label_text(tv, "about")
		
      self.add(nb)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
if __name__ == '__main__':
   PyApp()
   gtk.main()

После выполнения приведенный выше код отображает записную книжку с тремя страницами -