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 -