我正在学习wxPython有人告诉我,当你在菜单上使用各种id时,比如ID_EXIT
, ID_NEW
, ID_UNDO
等,它会在菜单上显示一个名称和图标。但不幸的是,图标在WINDOWS中不显示。我假设它只在linux中工作。
还有其他方法吗?我在哪里可以找到一些图标包来继续学习wxpython?因为我不能使用那些id图标,我想用SetBitmap
手动设置它们。但由于我没有任何图标,我也不能这样做。
下面是一个向菜单项添加图像的简单示例。我使用SetBitmap()将图像添加到菜单项中。从这里下载Exit-icon.png文件,并将其放在脚本所在的同一目录中。
import wx
class GUI(wx.Frame):
def __init__(self, parent, id, title):
screenWidth = 500
screenHeight = 400
screenSize = (screenWidth,screenHeight)
wx.Frame.__init__(self, None, id, title, size=screenSize)
myMenuBar = wx.MenuBar()
file = wx.Menu()
quit = wx.MenuItem(file, 101, '&QuittCtrl+Q', 'Quit the Application')
# Adding an image to the quit menu item
quit.SetBitmap(wx.Image('Exit-icon.png',wx.BITMAP_TYPE_PNG).ConvertToBitmap())
file.AppendItem(quit)
file.AppendSeparator()
myMenuBar.Append(file, '&File')
self.SetMenuBar(myMenuBar)
if __name__=='__main__':
app = wx.App(False)
frame = GUI(parent=None, id=-1, title="Problem Demo-PSS")
frame.Show()
app.MainLoop()
编辑:Mr. wxPython评论了图标包:
wxPython还包括一组股票图标。查看文档和wx.ArtProvider.
关于图标包,你应该更喜欢使用。png文件,你可以在互联网上找到很多免费的东西。根据操作系统的不同,图标也有一个标准的大小格式。如。,我从这里得到了下面的表格:
OS Icon format Size
Windows 16x16, 24x24, 32x32, 48x48, 256x256
Mac OS X 16x16, 32x32, 64x64, 128x128, 256x256, 512x512, 1024x1024
Linux 16x16, 24x24, 48x48, and 96x96
iOS 6 29x29, 50x50, 57x57, 58x58, 72x72, 100x100, 114x114, 144x144, 1024x1024
iOS 7 29x29, 40x40, 58x58, 60x60, 76x76, 80x80, 120x120, 152x152, 1024x1024
Android 36x36, 48x48, 72x72, 96x96, 512x512
Windows Phone 62x62, 99x99, 173x173, 200x200
Update:你可以在这里找到一个示例图标包。使用搜索选项:
退出图标http://findicons.com/search/exit
撤销图标http://findicons.com/search/undo
重做图标http://findicons.com/search/redo
只需点击任何图标,一个新的页面打开,然后点击下载png按钮。你也可以简单地重命名图标文件,即使它没有命名为退出/撤销/重做。:)
在wxPython 4.0.1(以及可能更早的版本)中,您不需要为基本内容下载图标。使用zetcode的简单工具栏示例,如果没有找到' tnews .png',则会抛出一个错误:
toolbar1.AddLabelTool(wx.ID_ANY, '', wx.Bitmap('tnew.png'))
但是,您可以使用内置图标使用wx.ArtProvider.GetBitmap():
icon = wx.ArtProvider.GetBitmap(wx.ART_QUIT)
toolbar1.AddTool(wx.ID_ANY, '', icon) # AddLabelTool raises DeprecationWarning
,这里是一个嵌入的列表,ART_QUIT可能不是最好的替代' tnews .png'。