wxPython question

Discussion in 'Python' started by Jive, Dec 17, 2004.

  1. Jive

    Jive Guest

    How the heck do you set the icon on a frame using a .ico file, or a .bmp
    file, or whatever? How do you find out how to do something like that?
    Apparently there is no documentation to speak of. I tried looking the in
    the demo program, but I didn't find the secret..
     
    Jive, Dec 17, 2004
    #1
    1. Advertising

  2. Jive

    Guest

    Jive wrote:
    > How the heck do you set the icon on a frame using a .ico file, or a

    ..bmp
    > file, or whatever? How do you find out how to do something like

    that?
    > Apparently there is no documentation to speak of. I tried looking

    the in
    > the demo program, but I didn't find the secret..

    Hello Jive,
    # this is a bit old but should still work
    # might have to tweak the wx stuff
    # because of the namespace change. ex. wxImage -> wx.Image
    # image size must be 32h 32w
    image = wxImage(file, wxBITMAP_TYPE_JPEG)
    image = image.ConvertToBitmap()

    icon = wxEmptyIcon()
    icon.CopyFromBitmap(image)

    frame.SetIcon(icon)

    Be sure to look thru the demo it is very informative and is really the
    best documention.
    As they say use the source Luke.
    Hth,
    M.E.Farmer
     
    , Dec 17, 2004
    #2
    1. Advertising

  3. Jive

    M.E.Farmer Guest

    Messed up it does need the dots.
    This should handle bmp ico png gif and several other formats.
    Still need to be 32 by 32

    wx.InitAllImageHandlers()
    image = wx.Image(file, wx.BITMAP_TYPE_ANY)
    image = image.ConvertToBitmap()

    icon = wxEmptyIcon()
    icon.CopyFromBitmap(image)

    frame.SetIcon(icon)

    Hth,
    M.E.Farmer
     
    M.E.Farmer, Dec 17, 2004
    #3
  4. M.E.Farmer wrote:
    > Messed up it does need the dots.
    > This should handle bmp ico png gif and several other formats.
    > Still need to be 32 by 32
    >
    > wx.InitAllImageHandlers()
    > image = wx.Image(file, wx.BITMAP_TYPE_ANY)
    > image = image.ConvertToBitmap()
    >
    > icon = wxEmptyIcon()
    > icon.CopyFromBitmap(image)
    >
    > frame.SetIcon(icon)
    >
    > Hth,
    > M.E.Farmer


    I needed to scale the image down to 16 by 16 on my Windows computer to
    make it work.
    hth,
    André
     
    =?iso-8859-1?B?QW5kcuk=?=, Dec 17, 2004
    #4
  5. Jive

    M.E.Farmer Guest

    André wrote:
    > I needed to scale the image down to 16 by 16 on my Windows computer

    to
    > make it work.


    Hello André,

    # I actually ran this code ;)
    import wx
    app = wx.PySimpleApp()
    class myframe(wx.Frame):
    def __init__(self):
    wx.Frame.__init__(self,None,-1,"Icon Frame",
    size=(100,100),pos=(-1,-1))
    frame = myframe()
    wx.InitAllImageHandlers()
    # this image is 32*32 on my computer
    image = wx.Image('c:/Python22/pycon.ico', wx.BITMAP_TYPE_ANY)
    image = image.ConvertToBitmap()

    icon = wx.EmptyIcon()
    icon.CopyFromBitmap(image)

    frame.SetIcon(icon)

    frame.Show()
    app.MainLoop()

    This works fine for me I am on windows 2000, and pycon.py is 32*32*24
    Wonder why you had to resize?

    On another note, be sure to check out the tools dir in either the
    wxpython dir or wx dir it has a script called img2py.py.

    img2py.py -- Convert an image to PNG format and embed it in a Python
    module with appropriate code so it can be loaded into
    a program at runtime. The benefit is that since it is
    Python source code it can be delivered as a .pyc or
    'compiled' into the program using freeze, py2exe, etc.

    Be sure to use the -i flag so it will convert it to a wxIcon
    Once you convert your icon to source using img2py.py you can do this:
    import Icon
    ICON = Icon.getIcon()
    frame.SetIcon(ICON)

    Hth,
    M.E.Farmer
     
    M.E.Farmer, Dec 17, 2004
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Anand
    Replies:
    1
    Views:
    374
    Cliff Wells
    Jul 23, 2003
  2. ulysses
    Replies:
    4
    Views:
    822
    Werner Schiendl
    Oct 22, 2003
  3. Logan
    Replies:
    5
    Views:
    793
    David Bolen
    Dec 11, 2003
  4. Ruben Charles
    Replies:
    6
    Views:
    517
    =?ISO-8859-1?Q?Michael_Str=F6der?=
    Oct 25, 2005
  5. Robin Dunn
    Replies:
    0
    Views:
    546
    Robin Dunn
    Mar 28, 2006
Loading...

Share This Page