By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,730 Members | 1,546 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,730 IT Pros & Developers. It's quick & easy.

wxPython question

P: n/a
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..

Jul 18 '05 #1
Share this Question
Share on Google+
4 Replies


P: n/a
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

Jul 18 '05 #2

P: n/a
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

Jul 18 '05 #3

P: n/a

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é

Jul 18 '05 #4

P: n/a

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

Jul 18 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.