Рамка (gtk.Frame)

Рамки могут быть использованы для того чтобы окаймлять один или группу виджетов в коробке, и опционально их подписывать. Положение метки и стиль рамки могут быть изменены.

Frame может быть создан с помощью функции:

  frame = gtk.Frame(label=None)

label по умолчанию помещается в верхний левый угол рамки. Указание значения None  для аргумента label, или отсутствие этого аргумента в результате дадут отсутствие метки. Текст метки может быть изменён с помощью метода:

  frame.set_label(label)

Позиция метки может быть изменена использованием метода:

  frame.set_label_align(xalign, yalign)

xalign и yalign прнимают значения между 0.0 и 1.0. xalign показывает положение метки на рамке по горизонтали. yalign в текущий момент не используется. Значение по умолчанию для xalign равно 0.0, что помещает метку в левый угол.

Следующий метод меняет стиль рамки.

  frame.set_shadow_type(type)

Аргумент type может принимать одно из следующих значений:

  SHADOW_NONE
  SHADOW_IN
  SHADOW_OUT
  SHADOW_ETCHED_IN      # по умолчанию
  SHADOW_ETCHED_OUT

Пример frame.py показывает использование рамок. Рисунок 10.4, “Пример рамок” показывает получаемое окно:

Рисунок 10.4. Пример рамок

Frame Example

Исходный код для frame.py:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# example frame.py
 
import pygtk
pygtk.require('2.0')
import gtk
 
class FrameExample:
    def __init__(self):
        # Создаём новое окно
        window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        window.set_title("Пример gtk.Frame")
 
        # Здесь мы подключаем событие "destroy" к обработчику
        window.connect("destroy", lambda w: gtk.main_quit())
        window.set_size_request(300, 300)
 
        # Устанавливаем ширину границы окна
        window.set_border_width(10)
 
        # Создаём рамку
        frame = gtk.Frame()
        window.add(frame)
 
        # Указываем метку
        frame.set_label('<span color="red">GTK Frame</span> Widget')
 
        # Разрешаем форматированный текст в метке
        label = frame.get_label_widget()
        label.set_use_markup(True)
 
        # Выравниваем метку по правому краю
        frame.set_label_align(1.0, 0.0)
 
        # Задаём стиль рамки
        frame.set_shadow_type(gtk.SHADOW_ETCHED_OUT)
        frame.show()
 
        # Отображаем окно
        window.show()
 
def main():
    # Запускаем основной цикл
    gtk.main()
    return 0
 
if __name__ == "__main__":
    FrameExample()
    main()

Примеры calendar.py, label.py и spinbutton.py также используют рамки.


Предыдущая страница На уровень выше  Следующая страница
10.4. Макет (gtk.Layout) К оглавлению  10.6. Перспектива (gtk.AspectFrame)

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>