Учебники

PyGTK — класс фреймов

Класс 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()

Приведенный выше код сгенерирует следующий вывод: