我就在这里
分类: Python/Ruby
2013-03-05 15:35:05
在wxPython中,有几个内置的脚本工具可以用来做图片格式转换,在c:\Python26\Lib\site-packages\wx-2.8-msw-unicode\wx\tools\路径下,包括img2png.py、img2py.py、img2xpm.py。
可以使用这些脚本方便地转换图片,如以下两个命令,分别转换图片为.png格式和.xpm格式:
img2png.py
img2xpm.py
而img2py.py则可以将图片转换为内嵌于Python脚本的形式:
img2py.py -n AppIcon appname.icon images.py
img2py.py -n AppIcon2 -a appname2.icon images.py
第二条命令可以将appname2.icon生成的内嵌文本加在images.py文件中。
然后,就可以在Frame中设置图标了:
import images.py
class AppnameFrame(wx.Frame):
def__init__(self,parent):
wx.Frame.__init__(self,parent,-1,'Appname',size=(600,400))
self.SetIcon(images.AppIcon.GetIcon())
# ...
使用内嵌图标的好处是图标包含在程序文本中,通过编译可以实现隐蔽性。
设置窗口图标wx.SetIcon
---------------------------------------------------
一种是使用已知的ico格式的图标:
#!/usr/bin/evn python
# -*- coding: cp936 -*-
import wx
import shutil
import os
class Create_Frame( wx.Frame ):
def __init__( self, parent, ID, title ):
wx.Frame.__init__( self, parent, ID, title, size = ( 380, 250) ,
style = wx.DEFAULT_FRAME_STYLE|wx.STAY_ON_TOP )
panel = wx.Panel( self, -1 )
self.icon = wx.Icon('lihf.ico', wx.BITMAP_TYPE_ICO)
self.SetIcon(self.icon)
self.list0 = ["a", "b", "c", "c", "e", "f", "g"]
rb = wx.RadioBox(
panel, -1, "a", wx.DefaultPosition, wx.DefaultSize,
self.list0, 1, wx.RA_SPECIFY_COLS | wx.NO_BORDER )
rb.SetToolTip(wx.ToolTip("a!"))
rb.Bind(wx.EVT_RADIOBOX, self.Print, rb)
def Print( self, event ):
ID = event.GetInt()
print self.list0[ID]
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = Create_Frame(None, -1, "new frame")
frame.Show( True )
app.MainLoop()
本例中ico图标文件名称是:lihf.ico,与程序源文件保存在同一个文件夹下就可。