PyGTK - Classe Frame

La classe Frame è una sottoclasse della classe gtk.Bin. Disegna un bordo decorativo attorno al widget figlio posizionato al suo interno. La cornice può contenere un'etichetta la cui posizione può essere personalizzata.

Un oggetto gtk.Frame viene costruito con l'aiuto del seguente costruttore:

frame = gtk.Frame(label = None)

I seguenti sono i metodi della classe gtk.Frame () -

  • set_label(text) - Questo imposta l'etichetta come specificato da text. SeNone, l'etichetta corrente viene rimossa.

  • set_label_widget() - Questo imposta un widget diverso da gtk.Label come etichetta per il frame.

  • set_label_align(x, y) - Questo imposta l'allineamento del widget e della decorazione dell'etichetta della cornice (i valori predefiniti sono 0,0 e 0,5)

  • set_shadow_type() - Imposta il tipo di ombra della cornice.

I valori possibili sono:

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

Il codice seguente mostra il funzionamento del widget Frame. Un gruppo di tre oggetti di gtk.RadioButton è posto in un 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)

Per disegnare un bordo attorno al riquadro, viene posizionato in un widget Cornice e viene aggiunto alla finestra di primo livello.

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

Esempio

Rispettare il codice seguente:

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

Il codice sopra genererà il seguente output: