PyGTK - Classe Frame

A classe Frame é uma subclasse da classe gtk.Bin. Ele desenha uma borda decorativa ao redor do widget filho colocado nele. A moldura pode conter uma etiqueta cuja posição pode ser personalizada.

Um objeto gtk.Frame é construído com a ajuda do seguinte construtor -

frame = gtk.Frame(label = None)

A seguir estão os métodos da classe gtk.Frame () -

  • set_label(text) - Isso define o rótulo conforme especificado por text. E seNone, o rótulo atual é removido.

  • set_label_widget() - Isso define um widget diferente de gtk.Label como rótulo para o quadro.

  • set_label_align(x, y) - Isso define o alinhamento do widget de etiqueta e decoração da moldura (os padrões são 0,0 e 0,5)

  • set_shadow_type() - Isso define o tipo de sombra do quadro.

Os valores possíveis são -

  • gtk.SHADOW_NONE
  • gtk.SHADOW_IN
  • gtk.SHADOW_OUT
  • gtk.SHADOW_ETCHED_IN
  • tk.SHADOW_ETCHED_OUT

O código a seguir demonstra o funcionamento do widget Frame. Um grupo de três objetos de gtk.RadioButton é colocado em um 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)

Para desenhar uma borda ao redor da caixa, ela é colocada em um widget de Quadro e é adicionada à janela de nível superior.

frm = gtk.Frame()
frm.add(hb)
self.add(frm)

Exemplo

Observe o seguinte código -

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()

O código acima irá gerar a seguinte saída -