Chinaunix首页 | 论坛 | 博客
  • 博客访问: 105145
  • 博文数量: 14
  • 博客积分: 1475
  • 博客等级: 上尉
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-03 23:33
文章分类

全部博文(14)

文章存档

2007年(14)

我的朋友

分类: Python/Ruby

2007-05-03 23:33:03

    在wxPython中使用图片很简单.一般你可以找一个图片文件,然后在程序中使用它就行了.这样的好处是替换编辑都方便.但是在许多wxPython程序中,如Demo,TaskCoach中都使用了另一种方式,那就是将图片转换为Python的模块,这样就可以在程序中象模块一样来调用图片了.这样的好处是可以将图片模块放在Python路径中,在哪里都可以使用,而不是象图片文件还需要处理目录了.

    将图片转换为Python模块在安装完wxPython之后,会在Python的安装目录下scripts子目录中有img2py的脚本,它可以做这件事.在命令行输入(Windows下执行的是img2py.bat):

img2py

    可以看到它的帮助信息.其中比较有用的是:

  • -n name,它可以给生成的函数加一个名字,以方便调用.
  • -a,它可以将生成的代码追回到指定的文件后.

    不过好象一次只能处理一个文件.下面是一个简单的示意:

img2py -n Python python.gif image.py
img2py -a -n Logo logo.ico image.py

    最后生成的image.py文件中的内容就是(部分简略):

#-----------------------------------------------------------------
# This file was generated by C:\Python24\Scripts\img2py
#
from wx import ImageFromStream, BitmapFromImage
import cStringIO, zlib


def getPythonData():
    return zlib.decompress( '...' )

def getPythonBitmap():
    return BitmapFromImage(getPythonImage())

def getPythonImage():
    stream = cStringIO.StringIO(getPythonData())
    return ImageFromStream(stream)

#-----------------------------------------------------------------
def getLogoData():
    return zlib.decompress( '...' )

def getLogoBitmap():
    return BitmapFromImage(getLogoImage())

def getLogoImage():
    stream = cStringIO.StringIO(getLogoData())
    return ImageFromStream(stream)

    这样在程序中就可以通过getPythonBitmap()和getLogoBitmap()来得到Python.gif和Logo.ico这两幅图片了.

阅读(1583) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:使用Python来操作Word

给主人留下些什么吧!~~