我在尝试为我wxpython的按钮添加图标如下,但我发现图标的尺寸似乎一直要我手动调整,(我采用的是图片转64编码再加载的方法,这使得我每次调整都比较繁琐),我想知道有没有什么参数可以让图标自适应大小,而不是我手动调试尺寸
使用wx.GridBagSizer()使控件能随着用户缩放窗口大小而自动调整,wx.GridBagSizer()把空间用横线和竖线划分成一个个格子,用控价填充这些格子,从而自由的控制布局
参考这个 不过图片最佳是32px
给你推荐个可以免费下载图标的网站
https://www.iconfinder.com/search?q=button&price=free
import wx
import wx.lib.buttons as buts
class TestFrame(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
pause_button = buts.GenBitmapTextButton(self, -1, bitmap=wx.Bitmap("video.png"), label= "512px")
play_button = buts.GenBitmapTextButton(self, -1, bitmap=wx.Bitmap("video2.png"), label= "64px")
time_button = wx.Button(self, -1, label= "32x32")
time_button.SetBitmap(wx.Bitmap("video1.png"),wx.RIGHT)
box = wx.BoxSizer(wx.HORIZONTAL)
box.Add(pause_button, 0, wx.CENTER | wx.ALL,10)
box.Add(play_button, 0, wx.CENTER | wx.ALL,10)
box.Add(time_button, 0, wx.CENTER | wx.ALL,10)
self.SetSizerAndFit(box)
self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
pause_button.Bind(wx.EVT_BUTTON, self.OnPause)
play_button.Bind(wx.EVT_BUTTON, self.OnPlay)
time_button.Bind(wx.EVT_BUTTON, self.OnTime)
self.Show()
def OnCloseWindow(self, event):
self.Destroy()
def OnPause(self, event):
print("Pause pressed")
def OnPlay(self, event):
print("Play pressed")
def OnTime(self, event):
print("Time pressed")
if __name__ == "__main__":
app = wx.App()
frame = TestFrame(None, -1, "wxBitmap Test")
app.MainLoop()