wxPython question

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Jive

    #1

    wxPython question

    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..



  • mefjr75@hotmail.com

    #2
    Re: wxPython question

    Jive wrote:[color=blue]
    > How the heck do you set the icon on a frame using a .ico file, or a[/color]
    ..bmp[color=blue]
    > file, or whatever? How do you find out how to do something like[/color]
    that?[color=blue]
    > Apparently there is no documentation to speak of. I tried looking[/color]
    the in[color=blue]
    > the demo program, but I didn't find the secret..[/color]
    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_J PEG)
    image = image.ConvertTo Bitmap()

    icon = wxEmptyIcon()
    icon.CopyFromBi tmap(image)

    frame.SetIcon(i con)

    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

    Comment

    • M.E.Farmer

      #3
      Re: wxPython question

      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.InitAllImage Handlers()
      image = wx.Image(file, wx.BITMAP_TYPE_ ANY)
      image = image.ConvertTo Bitmap()

      icon = wxEmptyIcon()
      icon.CopyFromBi tmap(image)

      frame.SetIcon(i con)

      Hth,
      M.E.Farmer

      Comment

      • André

        #4
        Re: wxPython question


        M.E.Farmer wrote:[color=blue]
        > 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.InitAllImage Handlers()
        > image = wx.Image(file, wx.BITMAP_TYPE_ ANY)
        > image = image.ConvertTo Bitmap()
        >
        > icon = wxEmptyIcon()
        > icon.CopyFromBi tmap(image)
        >
        > frame.SetIcon(i con)
        >
        > Hth,
        > M.E.Farmer[/color]

        I needed to scale the image down to 16 by 16 on my Windows computer to
        make it work.
        hth,
        André

        Comment

        • M.E.Farmer

          #5
          Re: wxPython question


          André wrote:[color=blue]
          > I needed to scale the image down to 16 by 16 on my Windows computer[/color]
          to[color=blue]
          > make it work.[/color]

          Hello André,

          # I actually ran this code ;)
          import wx
          app = wx.PySimpleApp( )
          class myframe(wx.Fram e):
          def __init__(self):
          wx.Frame.__init __(self,None,-1,"Icon Frame",
          size=(100,100), pos=(-1,-1))
          frame = myframe()
          wx.InitAllImage Handlers()
          # this image is 32*32 on my computer
          image = wx.Image('c:/Python22/pycon.ico', wx.BITMAP_TYPE_ ANY)
          image = image.ConvertTo Bitmap()

          icon = wx.EmptyIcon()
          icon.CopyFromBi tmap(image)

          frame.SetIcon(i con)

          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(I CON)

          Hth,
          M.E.Farmer

          Comment

          Working...