Класс Frame является подклассом класса gtk.Bin. Он рисует декоративную рамку вокруг дочернего виджета, размещенного в нем. Рамка может содержать метку, положение которой может быть изменено.
Объект gtk.Frame создается с помощью следующего конструктора —
frame = gtk.Frame(label = None)
Ниже приведены методы класса gtk.Frame ().
-
set_label (text) — устанавливает метку в соответствии с текстом . Если None , текущая метка удаляется.
-
set_label_widget () — устанавливает виджет, отличный от gtk.Label, в качестве метки для фрейма.
-
set_label_align (x, y) — это устанавливает выравнивание виджета метки фрейма и художественное оформление (по умолчанию 0.0 и 0.5)
-
set_shadow_type () — устанавливает тип тени рамки.
set_label (text) — устанавливает метку в соответствии с текстом . Если None , текущая метка удаляется.
set_label_widget () — устанавливает виджет, отличный от gtk.Label, в качестве метки для фрейма.
set_label_align (x, y) — это устанавливает выравнивание виджета метки фрейма и художественное оформление (по умолчанию 0.0 и 0.5)
set_shadow_type () — устанавливает тип тени рамки.
Возможные значения —
- gtk.SHADOW_NONE
- gtk.SHADOW_IN
- gtk.SHADOW_OUT
- gtk.SHADOW_ETCHED_IN
- tk.SHADOW_ETCHED_OUT
Следующий код демонстрирует функционирование виджета Frame. Группа из трех объектов gtk.RadioButton помещается в HButtonBox.
btn1 = gtk.RadioButton(None,"Degree") btn2 = gtk.RadioButton(btn1,"P.G.") btn3 = gtk.RadioButton(btn1,"Doctorate") hb = gtk.HButtonBox() hb.add(btn1) hb.add(btn2) hb.add(btn3)
Чтобы нарисовать границу вокруг рамки, она помещается в виджет «Рамка» и добавляется в окно верхнего уровня.
frm = gtk.Frame() frm.add(hb) self.add(frm)
пример
Соблюдайте следующий код —
import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Frame Demo") self.set_default_size(250, 200) self.set_border_width(5) frm = gtk.Frame() 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) frm.add(hb) frm.set_label("Qualifications") self.add(frm) self.connect("destroy", gtk.main_quit) self.show_all() if __name__ == '__main__': PyApp() gtk.main()
Приведенный выше код сгенерирует следующий вывод: