我想将这样的图像放在wx.Panel
:
动物应该是“按钮”,这样,如果我单击它们,它们的图像将发生变化,并且如果我重新单击,图像将恢复正常(因此,可以将动物视为简单按钮,如此处的BitmapToggleButtons
另一个问题所建议的那样)
如果将父面板的尺寸wx.Panel
调整为较小的尺寸(例如,可以使用标准的Windows Photo Viewer:http://res1.windows),则应调整面板的尺寸/调整比例(所有所有子图像也都必须具有切换按钮!),并保持宽高比。.microsoft.com / resbox / zh-cn / windows%207 / main / 7eaf462a-86dd-42d2-a789-7413f5472dae_63.jpg)
我仍然迷失在:如何实现这种可点击的(带有切换按钮)和可缩放的Canvas?
编辑:我从这里富有成果的东西开始,当在wxPython中调整父对象的大小时,重新缩放图像,但是现在我完全迷住了如何继续(检测单击,使用直接DC Painting更新按钮?),这就是赏金的原因。
我用以下方法解决了问题:
import wx
from floatcanvas import FloatCanvas
class MyPanel(wx.Panel):
def __init__(self, parent):
super(MyPanel, self).__init__(parent)
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(self.sizer)
# add a canvas
self.Canvas = FloatCanvas.FloatCanvas(self, BackgroundColor = "LIGHT GREY")
self.Canvas.Bind(wx.EVT_SIZE, self.OnSize)
self.sizer.Add(self.Canvas, -1, flag=wx.EXPAND)
# add a toggle button
image_dis = wx.Image('file_disabled.png')
image_ena = wx.Image('file_enabled.png')
img_dis = self.Canvas.AddScaledBitmap(image_dis, (x,-y), Height=image_dis.GetHeight(), Position = 'tl')
img_ena = self.Canvas.AddScaledBitmap(image_ena, (x,-y), Height=image_ena.GetHeight(), Position = 'tl')
img_dis.other = img_ena
img_ena.other = img_dis
img_ena.Visible = False
# bind the toggle button event
img_dis.Bind(FloatCanvas.EVT_FC_LEFT_UP, self.OnToggle)
img_ena.Bind(FloatCanvas.EVT_FC_LEFT_UP, self.OnToggle)
def OnToggle(self, button):
button.other.Visible = True
button.Visible = False
self.Canvas.Draw(True)
def OnSize(self, event):
event.Skip()
wx.CallLater(1, self.Canvas.ZoomToBB)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句