#/usr/bin/env python # -*- 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 ## ## 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()