# -*- coding: utf-8 -*-
##———————————————————————–##
## EntendreEmpaquetat.py Un programa per entendre el funcionament
## de les funcions pack_start() i pack_end()
##
##
## Copyright (C) 2006 Vicent Cubells i Peña
## All Rights Reserved.
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; see the file COPYING.
## If not, write to the Free Software Foundation, Inc.,
## 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
##
## Vicent Cubells i Peña
## <vicent@vcubells.net>
## http://www.vcubells.net
##
##———————————————————————–##
import pygtk
pygtk.require(‘2.0′)
import gtk
# Funció per a crear les caixes horitzontals de quatre botons
def crea_paquet(homogeni, espaiat, expandeix, omple, farciment):
# Creem la caixa horitzontal amb els paràmetres passats
# a la funció
caixa=gtk.HBox(homogeni, espaiat)
# Creem els diferents botons amb els paràmetres passats
# a la funció
boto=gtk.Button(“Botó un”)
caixa.pack_start(boto, expandeix, omple, farciment)
boto.show()
boto=gtk.Button(“Botó dos”)
caixa.pack_start(boto, expandeix, omple, farciment)
boto.show()
boto=gtk.Button(“Botó tres”)
caixa.pack_start(boto, expandeix, omple, farciment)
boto.show()
boto=gtk.Button(“Botó quatre”)
caixa.pack_start(boto, expandeix, omple, farciment)
boto.show()
# retornem la caixa
return caixa
class EntendreEmpaquetat:
# Funció per acabar
def tanquem_programa(self, widget, event, data=None):
gtk.main_quit()
return False
def __init__(self):
# Creem la finestra principal
self.finestra=gtk.Window(gtk.WINDOW_TOPLEVEL)
# Connectem el senyal "delete_event" amb la finestra
self.finestra.connect(“delete_event”, self.tanquem_programa)
self.finestra.set_border_width(10)
# Per a acabar si es produeix el senyal "destroy"
self.finestra.connect(“destroy”, lambda w: gtk.main_quit())
# Creem una caixa vertical on posarem totes les tires
# horitzontals de botons d’aquest exemple
caixa1=gtk.VBox(False,0)
# Creem etiqueta per informar dels paràmetres emprats
etiqueta=gtk.Label(“Hbox amb homogeneous=False i espaiat=0″)
etiqueta.set_alignment(0, 0)
# Afegim l’etiqueta a la caixa vertical
caixa1.pack_start(etiqueta, False, False, 0)
# Mostrem l’etiqueta
etiqueta.show()
# Posem els primers quatre botons
# Paràmetres: homogeni, espaiat, expandeix, omple, farciment
caixa2=crea_paquet(False, 0, False, False, 0)
# Afegim la caixa horitzontal a la vertical
caixa1.pack_start(caixa2, False, False, 0)
caixa2.show()
# Fem un serparador per fer-ho bonic
separador=gtk.HSeparator()
caixa1.pack_start(separador, False, True, 5)
separador.show()
# Creem etiqueta per informar dels paràmetres emprats
etiqueta=gtk.Label(“Hbox amb homogeneous=True i espaiat=0″)
etiqueta.set_alignment(0, 0)
# Afegim l’etiqueta a la caixa vertical
caixa1.pack_start(etiqueta, False, False, 0)
# Mostrem l’etiqueta
etiqueta.show()
# Posem els primers quatre botons
# Paràmetres: homogeni, espaiat, expandeix, omple, farciment
caixa2=crea_paquet(True, 0, False, False, 0)
# Afegim la caixa horitzontal a la vertical
caixa1.pack_start(caixa2, False, False, 0)
caixa2.show()
# Fem un serparador per fer-ho bonic
separador=gtk.HSeparator()
caixa1.pack_start(separador, False, True, 5)
separador.show()
# Creem etiqueta per informar dels paràmetres emprats
etiqueta=gtk.Label(“Hbox amb homogeneous=False i espaiat=10″)
etiqueta.set_alignment(0, 0)
# Afegim l’etiqueta a la caixa vertical
caixa1.pack_start(etiqueta, False, False, 0)
# Mostrem l’etiqueta
etiqueta.show()
# Posem els primers quatre botons
# Paràmetres: homogeni, espaiat, expandeix, omple, farciment
caixa2=crea_paquet(False, 10, False, False, 0)
# Afegim la caixa horitzontal a la vertical
caixa1.pack_start(caixa2, False, False, 0)
caixa2.show()
# Fem un serparador per fer-ho bonic
separador=gtk.HSeparator()
caixa1.pack_start(separador, False, True, 5)
separador.show()
# Creem etiqueta per informar dels paràmetres emprats
etiqueta=gtk.Label(“Hbox amb homogeneous=True i espaiat=10″)
etiqueta.set_alignment(0, 0)
# Afegim l’etiqueta a la caixa vertical
caixa1.pack_start(etiqueta, False, False, 0)
# Mostrem l’etiqueta
etiqueta.show()
# Posem els primers quatre botons
# Paràmetres: homogeni, espaiat, expandeix, omple, farciment
caixa2=crea_paquet(True, 10, False, False, 0)
# Afegim la caixa horitzontal a la vertical
caixa1.pack_start(caixa2, False, False, 0)
caixa2.show()
# Fem un serparador per fer-ho bonic
separador=gtk.HSeparator()
caixa1.pack_start(separador, False, True, 5)
separador.show()
# Creem etiqueta per informar dels paràmetres emprats
etiqueta=gtk.Label(“Hbox homogeneous=False Pack_start expand=False, fill=False, padding=0″)
etiqueta.set_alignment(0, 0)
# Afegim l’etiqueta a la caixa vertical
caixa1.pack_start(etiqueta, False, False, 0)
# Mostrem l’etiqueta
etiqueta.show()
# Posem els primers quatre botons
# Paràmetres: homogeni, espaiat, expandeix, omple, farciment
caixa2=crea_paquet(False, 0, False, False, 0)
# Afegim la caixa horitzontal a la vertical
caixa1.pack_start(caixa2, False, False, 0)
caixa2.show()
# Fem un serparador per fer-ho bonic
separador=gtk.HSeparator()
caixa1.pack_start(separador, False, True, 5)
separador.show()
# Creem etiqueta per informar dels paràmetres emprats
etiqueta=gtk.Label(“Hbox homogeneous=False Pack_start expand=True, fill=False, padding=0″)
etiqueta.set_alignment(0, 0)
# Afegim l’etiqueta a la caixa vertical
caixa1.pack_start(etiqueta, False, False, 0)
# Mostrem l’etiqueta
etiqueta.show()
# Posem els primers quatre botons
# Paràmetres: homogeni, espaiat, expandeix, omple, farciment
caixa2=crea_paquet(False, 0, True, False, 0)
# Afegim la caixa horitzontal a la vertical
caixa1.pack_start(caixa2, False, False, 0)
caixa2.show()
# Fem un serparador per fer-ho bonic
separador=gtk.HSeparator()
caixa1.pack_start(separador, False, True, 5)
separador.show()
# Creem etiqueta per informar dels paràmetres emprats
etiqueta=gtk.Label(“Hbox homogeneous=False Pack_start expand=True, fill=True, padding=0″)
etiqueta.set_alignment(0, 0)
# Afegim l’etiqueta a la caixa vertical
caixa1.pack_start(etiqueta, False, False, 0)
# Mostrem l’etiqueta
etiqueta.show()
# Posem els primers quatre botons
# Paràmetres: homogeni, espaiat, expandeix, omple, farciment
caixa2=crea_paquet(False, 0, True, True, 0)
# Afegim la caixa horitzontal a la vertical
caixa1.pack_start(caixa2, False, False, 0)
caixa2.show()
# Fem un serparador per fer-ho bonic
separador=gtk.HSeparator()
caixa1.pack_start(separador, False, True, 5)
separador.show()
# Creem etiqueta per informar dels paràmetres emprats
etiqueta=gtk.Label(“Hbox homogeneous=False Pack_start expand=True, fill=True, padding=10″)
etiqueta.set_alignment(0, 0)
# Afegim l’etiqueta a la caixa vertical
caixa1.pack_start(etiqueta, False, False, 0)
# Mostrem l’etiqueta
etiqueta.show()
# Posem els primers quatre botons
# Paràmetres: homogeni, espaiat, expandeix, omple, farciment
caixa2=crea_paquet(False, 0, True, True, 10)
# Afegim la caixa horitzontal a la vertical
caixa1.pack_start(caixa2, False, False, 0)
caixa2.show()
# Fem un serparador per fer-ho bonic
separador=gtk.HSeparator()
caixa1.pack_start(separador, False, True, 5)
separador.show()
# Creem etiqueta per informar dels paràmetres emprats
etiqueta=gtk.Label(“Hbox homogeneous=True Pack_start expand=False, fill=False, padding=0″)
etiqueta.set_alignment(0, 0)
# Afegim l’etiqueta a la caixa vertical
caixa1.pack_start(etiqueta, False, False, 0)
# Mostrem l’etiqueta
etiqueta.show()
# Posem els primers quatre botons
# Paràmetres: homogeni, espaiat, expandeix, omple, farciment
caixa2=crea_paquet(True, 0, False, False, 0)
# Afegim la caixa horitzontal a la vertical
caixa1.pack_start(caixa2, False, False, 0)
caixa2.show()
# Fem un serparador per fer-ho bonic
separador=gtk.HSeparator()
caixa1.pack_start(separador, False, True, 5)
separador.show()
# Creem etiqueta per informar dels paràmetres emprats
etiqueta=gtk.Label(“Hbox homogeneous=True Pack_start expand=True, fill=False, padding=0″)
etiqueta.set_alignment(0, 0)
# Afegim l’etiqueta a la caixa vertical
caixa1.pack_start(etiqueta, False, False, 0)
# Mostrem l’etiqueta
etiqueta.show()
# Posem els primers quatre botons
# Paràmetres: homogeni, espaiat, expandeix, omple, farciment
caixa2=crea_paquet(True, 0, True, False, 0)
# Afegim la caixa horitzontal a la vertical
caixa1.pack_start(caixa2, False, False, 0)
caixa2.show()
# Fem un serparador per fer-ho bonic
separador=gtk.HSeparator()
caixa1.pack_start(separador, False, True, 5)
separador.show()
# Creem etiqueta per informar dels paràmetres emprats
etiqueta=gtk.Label(“Hbox homogeneous=True Pack_start expand=True, fill=True, padding=0″)
etiqueta.set_alignment(0, 0)
# Afegim l’etiqueta a la caixa vertical
caixa1.pack_start(etiqueta, False, False, 0)
# Mostrem l’etiqueta
etiqueta.show()
# Posem els primers quatre botons
# Paràmetres: homogeni, espaiat, expandeix, omple, farciment
caixa2=crea_paquet(True, 0, True, True, 0)
# Afegim la caixa horitzontal a la vertical
caixa1.pack_start(caixa2, False, False, 0)
caixa2.show()
# Fem un serparador per fer-ho bonic
separador=gtk.HSeparator()
caixa1.pack_start(separador, False, True, 5)
separador.show()
# Creem etiqueta per informar dels paràmetres emprats
etiqueta=gtk.Label(“Hbox homogeneous=True Pack_start expand=True, fill=True, padding=10″)
etiqueta.set_alignment(0, 0)
# Afegim l’etiqueta a la caixa vertical
caixa1.pack_start(etiqueta, False, False, 0)
# Mostrem l’etiqueta
etiqueta.show()
# Posem els primers quatre botons
# Paràmetres: homogeni, espaiat, expandeix, omple, farciment
caixa2=crea_paquet(True, 0, True, True, 10)
# Afegim la caixa horitzontal a la vertical
caixa1.pack_start(caixa2, False, False, 0)
caixa2.show()
# Fem un serparador per fer-ho bonic
separador=gtk.HSeparator()
caixa1.pack_start(separador, False, True, 5)
separador.show()
# El botó per eixir
caixaFinal=gtk.HBox(False, 0)
boto=gtk.Button(“Acabar”)
boto.connect(“clicked”, lambda w: gtk.main_quit())
caixaFinal.pack_start(boto, True, False, 0)
caixa1.pack_start(caixaFinal, False, False, 0)
# Afegim la caixa vertical a la finestra
self.finestra.add(caixa1)
# Mostrem tot
boto.show()
caixaFinal.show()
caixa1.show()
self.finestra.show()
def main():
gtk.main()
return 0
if __name__ == “__main__”:
EntendreEmpaquetat()
main()
