Виджет Arrow рисует наконечник стрелки, направленный в одно из возможных направлений, в одном из возможных стилей. Его удобно помещать на кнопки во многих приложениях. Как и виджеты Label они не излучают сигналов.
Есть только 2 вызова для использования виджета Arrow:
arrow = gtk.Arrow(arrow_type, shadow_type) arrow.set(arrow_type, shadow_type) |
Первый создаёт новую стрелку определённого типа и стиля. Второй позволяет поменять эти значения для уже созданного виджета. Аргумент arrow_type может содержать одно из следующих значений:
ARROW_UP ARROW_DOWN ARROW_LEFT ARROW_RIGHT |
Эти значения очевидно указывают направление стрелки. Аргумент shadow_type может содержать одно из следующих значений:
SHADOW_IN SHADOW_OUT # по умолчанию SHADOW_ETCHED_IN SHADOW_ETCHED_OUT |
Пример arrow.py кратко показывает их использование. Рисунок 9.2, “Пример кнопок-стрелок” показывает результат запуска программы:
Исходный код arrow.py:
#!/usr/bin/env python # -*- coding:utf-8 -*- # example arrow.py import pygtk pygtk.require('2.0') import gtk # Создаём стрелку с указанными параметрами # и размещаем её в кнопке def create_arrow_button(arrow_type, shadow_type): button = gtk.Button(); arrow = gtk.Arrow(arrow_type, shadow_type); button.add(arrow) button.show() arrow.show() return button class Arrows: def __init__(self): # Создаём новое окно window = gtk.Window(gtk.WINDOW_TOPLEVEL) window.set_title("Стрелки") # Хорошая мысль использовать это со всеми окнами. window.connect("destroy", lambda x: gtk.main_quit()) # Устанавливаем ширину границы окна. window.set_border_width(10) # Создаём коробку содержащую стрелки/кнопки box = gtk.HBox(False, 0) box.set_border_width(2) window.add(box) # Размещаем и показываем все наши виджеты box.show() button = create_arrow_button(gtk.ARROW_UP, gtk.SHADOW_IN) box.pack_start(button, False, False, 3) button = create_arrow_button(gtk.ARROW_DOWN, gtk.SHADOW_OUT) box.pack_start(button, False, False, 3) button = create_arrow_button(gtk.ARROW_LEFT, gtk.SHADOW_ETCHED_IN) box.pack_start(button, False, False, 3) button = create_arrow_button(gtk.ARROW_RIGHT, gtk.SHADOW_ETCHED_OUT) box.pack_start(button, False, False, 3) window.show() def main(): gtk.main() return 0 if __name__ == "__main__": Arrows() main()
Предыдущая страница | На уровень выше | Следующая страница |
Глава 9. Разнообразные виджеты | К оглавлению | 9.3. Всплывающие подсказки (gtk.Tooltips) |