Home > py2exe > Py2exe: Integrare immagini

Py2exe: Integrare immagini

Innanzitutto, sarebbe bene tenere le immagini relative al nostro
“programma”, tutte in una directory dedicata, nel mio caso
‘images’

Supponiamo che il “programma”, crei un frame con un bitmapButton,
il quale dovrà correttamente puntare al percorso dell’immagine,
che ingloba al suo interno:

#!/usr/bin/python
'''Simple Frame with BitmapButton'''

import wx
from wx.lib.buttons import GenBitmapTextButton

class FrameCore(wx.Frame):
    '''Initial Core Frame'''
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)
        panel = wx.Panel(self, wx.ID_ANY)

        self.btn_exit = GenBitmapTextButton(panel, wx.ID_ANY,
                                            wx.Bitmap('images\\q.png'),
                                            'Exit'.rjust(15),
                                            (5, 5), (125, -1))
        self.btn_exit.SetBezelWidth(1)
        self.btn_exit.SetBackgroundColour('#c2e6f8')

        self.btn_exit.Bind(wx.EVT_ENTER_WINDOW, self.on_btn_enter)
        self.btn_exit.Bind(wx.EVT_LEAVE_WINDOW, self.on_btn_leave)
        self.btn_exit.Bind(wx.EVT_BUTTON, self.on_exit)

        self.Centre()
        self.Show()

    def on_btn_enter(self, event):
        '''Into Button enter-mouse event handler'''
        obj =  event.GetEventObject()
        obj.SetBackgroundColour('#ffdf85')
        obj.Refresh()

    def on_btn_leave(self, event):
        '''From Button leave-mouse event handler'''
        obj =  event.GetEventObject()
        obj.SetBackgroundColour('#c2e6f8')
        obj.Refresh()

    def on_exit(self, event):
        '''Close Frame'''
        self.Close()

def main_core(parent):
    '''Info frame starter'''
    app = wx.PySimpleApp()
    FrameCore(parent, -1, title  = 'Foo', size = (150, 100))
    app.MainLoop()
    
if __name__ == '__main__':
    main_core(parent = None)

Al momento del freeze del programma, dovremo indicare le immagini
e la directory che le conterrà, con lo stesso nome che abbiamo
usato in fase di sviluppo (‘images’):

...
    path = ("c:\\Documents and Settings\\banchellia\\workspace\\rubrica\\src" +\
            "\\images\\")
    data_files = [('images', [png for png in glob.glob(path + '*.png')])]

    setup(data_files = data_files,
          options = setup_opts,
          zipfile = None,
          windows = [test_wx],
        )
...

terminato il “freeze”, possiamo utilizzare l’eseguibile, con tanto di immagini e
nessun errore del tipo:

wx._core.PyAssertionError: C++ assertion "bmp.Ok()" failed at ..\..\src\msw\dib.cpp(148) in wxDIB::Create(): wxDIB::Create(): invalid bitmap

link:
il mio sample py2exe
py2exe

Categorie:py2exe
  1. luglio 21, 2011 alle 1:31 pm

    Se non hai niente al contrario,voglio usare questa informazione. Sara molto utile per il mio progetto e certo che io lascio il link del tuo post per far la gente sapere dove andare.

  2. luglio 21, 2011 alle 1:40 pm

    ci mancherebbe! Buon lavoro.
    ciao.

  3. ottobre 4, 2014 alle 1:46 pm

    Hi! I could have sworn I’ve visited this blog before but after browsing through many of the posts I
    realized it’s new to me. Anyhow, I’m certainly delighted
    I found it and I’ll be book-marking it and checking back often!

  1. No trackbacks yet.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: