EntendreEmpaquetat.py

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

<< Torna a la pàgina dels fitxers