Класс панели инструментов наследуется от класса gtk.Container. Он держит и управляет набором кнопок и других виджетов. Одна или несколько горизонтальных полос кнопок обычно видны чуть ниже строки меню в окне верхнего уровня. Панель инструментов также можно поместить в съемное окно под названием HandleBox. По умолчанию кнопки в виджете gtk.Toolbar расположены горизонтально. Вертикальную панель инструментов можно настроить, установив свойство ориентации в gtk.ORIENTATION_VERTICAL .
Панель инструментов может быть настроена для отображения кнопок со значками, текста или обоих. Перечислители стиля —
gtk.TOOLBAR_ICONS | Эти кнопки отображают только значки на панели инструментов. |
gtk.TOOLBAR_TEXT | Эти кнопки отображают только текстовые метки на панели инструментов. |
gtk.TOOLBAR_BOTH | Эти кнопки отображают текст и значки на панели инструментов. |
gtk.TOOLBAR_BOTH_HORIZ | Эти кнопки отображают значки и текст рядом друг с другом, а не вертикально. |
Виджет панели инструментов настраивается с помощью следующего конструктора —
bar = gtk.Toolbar()
Составляющие панели инструментов являются экземплярами gtk.ToolItem. Элементы могут быть ToolButton, RadioToolButton, ToggleToolButton или SeparatorToolItem. Чтобы назначить значок объекту ToolItem, можно использовать изображения с предопределенным идентификатором stock_ID или назначить пользовательское изображение методом set_image ().
Следующие примеры показывают, как создавать различные ToolItems —
ToolButton
newbtn = gtk.ToolButton(gtk.STOCK_NEW)
RadioToolButton
rb1 = gtk.RadioToolButton(None,gtk.STOCK_JUSTIFY_LEFT) rb2 = gtk.RadioToolButton(rb1,gtk.STOCK_JUSTIFY_RIGHT)
Обратите внимание, что несколько переключателей находятся в одной группе.
SeparatorToolItem
sep = gtk.SeparatorToolItem()
Эти элементы помещаются в панель инструментов путем вызова метода вставки .
gtk.Toolbar.insert(item, index)
Например,
bar.insert(new,0)
Вы также можете назначить всплывающую подсказку для ToolButton с помощью метода set_tooltip_text (). Например, новая всплывающая подсказка назначается новой панели инструментов.
newbtn.set_tooltip_text("New")
пример
Следующий код показывает окно верхнего уровня с панелью инструментов, настроенной на то, чтобы содержать обычный инструментальный элемент, радиоэлементы и разделительный элемент.
import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Toolbar Demo") self.set_default_size(250, 200) self.set_position(gtk.WIN_POS_CENTER) toolbar = gtk.Toolbar() toolbar.set_style(gtk.TOOLBAR_ICONS) toolbar.set_orientation(gtk.ORIENTATION_HORIZONTAL) newbtn = gtk.ToolButton(gtk.STOCK_NEW) newbtn.set_tooltip_text("New") openbtn = gtk.ToolButton(gtk.STOCK_OPEN) savebtn = gtk.ToolButton(gtk.STOCK_SAVE) sep = gtk.SeparatorToolItem() rb1 = gtk.RadioToolButton(None,gtk.STOCK_JUSTIFY_LEFT) 53 rb2 = gtk.RadioToolButton(rb1,gtk.STOCK_JUSTIFY_RIGHT) prv = gtk.ToggleToolButton(gtk.STOCK_PRINT_PREVIEW) quitbtn = gtk.ToolButton(gtk.STOCK_QUIT) toolbar.insert(newbtn, 0) toolbar.insert(openbtn, 1) toolbar.insert(savebtn, 2) toolbar.insert(sep, 3) toolbar.insert(rb1,4) toolbar.insert(rb2,5) toolbar.insert(prv,6) toolbar.insert(quitbtn, 7) quitbtn.connect("clicked", gtk.main_quit) vbox = gtk.VBox(False, 2) vbox.pack_start(toolbar, False, False, 0) self.add(vbox) self.connect("destroy", gtk.main_quit) self.show_all() def on_checked(self, widget, data = None): state = "Button1 : "+str(self.btn1.get_active())+" Button2 : "+str(self.btn2.get_active()) self.lbl.set_text(state) if __name__ == '__main__': PyApp() gtk.main()
Приведенный выше код сгенерирует следующий вывод: