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()
После выполнения приведенный выше код отображает записную книжку с тремя страницами -