有没有办法隐藏按钮但使其可点击?
Is there a way to hide a button but make it clickable?
我正在用 wxpython
制作一个软件,我用一个帮助制作徽标的网站创建了一个徽标,我想在该徽标后面创建一个不可见的按钮,当单击该徽标时我会执行一些操作,那么有没有办法让按钮不可见但可以点击?
我想在退出文本中创建一个不可见的按钮,当点击退出时,它会退出软件,有什么办法吗?
这是通过将鼠标事件绑定到图像来实现您所追求的目标的一种简单方法。
确保图像的大小基本固定,否则您将不得不开始计算位置。
import wx
class Example(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, 'Mouse Control')
self.panel1 = wx.Panel(self)
self.panel2 = wx.Panel(self)
self.panel3 = wx.Panel(self)
self.aBitmap = wx.Image(name = "image_button.png").ConvertToBitmap()
self.bm = wx.StaticBitmap(self.panel2, -1, self.aBitmap)
self.bm.Bind(wx.EVT_LEFT_DOWN, self.onClick)
self.bm.Bind(wx.EVT_MOTION, self.onAccess)
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(self.panel1,0)
vbox.Add(self.panel2,0)
vbox.Add(self.panel3,0)
self.panel1.SetMinSize(self.bm.GetSize())
self.panel2.SetMinSize(self.bm.GetSize())
self.panel3.SetMinSize(self.bm.GetSize())
self.panel1.SetBackgroundColour("blue")
self.panel3.SetBackgroundColour("blue")
self.SetSizerAndFit(vbox)
self.Show()
def onClick(self, event):
x,y = event.GetPosition()
if y > 25 and y < 50:
if x > 30 and x < 170:
wx.MessageBox("Contact", "Contact Header")
elif x > 800 and x < 860:
wx.MessageBox("Exit", "Exit Header")
else:
event.Skip()
def onAccess(self, event):
x,y = event.GetPosition()
if y > 25 and y < 50:
if x > 30 and x < 170:
self.SetCursor(wx.Cursor(wx.CURSOR_HAND))
elif x > 800 and x < 860:
self.SetCursor(wx.Cursor(wx.CURSOR_HAND))
else:
self.SetCursor(wx.Cursor(wx.CURSOR_DEFAULT))
else:
self.SetCursor(wx.Cursor(wx.CURSOR_DEFAULT))
event.Skip()
if __name__ == '__main__':
app = wx.App()
Example()
app.MainLoop()
此代码表示您已通过更改光标完成 hotspot
(联系我们,退出)。
我正在用 wxpython
制作一个软件,我用一个帮助制作徽标的网站创建了一个徽标,我想在该徽标后面创建一个不可见的按钮,当单击该徽标时我会执行一些操作,那么有没有办法让按钮不可见但可以点击?
我想在退出文本中创建一个不可见的按钮,当点击退出时,它会退出软件,有什么办法吗?
这是通过将鼠标事件绑定到图像来实现您所追求的目标的一种简单方法。
确保图像的大小基本固定,否则您将不得不开始计算位置。
import wx
class Example(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, 'Mouse Control')
self.panel1 = wx.Panel(self)
self.panel2 = wx.Panel(self)
self.panel3 = wx.Panel(self)
self.aBitmap = wx.Image(name = "image_button.png").ConvertToBitmap()
self.bm = wx.StaticBitmap(self.panel2, -1, self.aBitmap)
self.bm.Bind(wx.EVT_LEFT_DOWN, self.onClick)
self.bm.Bind(wx.EVT_MOTION, self.onAccess)
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(self.panel1,0)
vbox.Add(self.panel2,0)
vbox.Add(self.panel3,0)
self.panel1.SetMinSize(self.bm.GetSize())
self.panel2.SetMinSize(self.bm.GetSize())
self.panel3.SetMinSize(self.bm.GetSize())
self.panel1.SetBackgroundColour("blue")
self.panel3.SetBackgroundColour("blue")
self.SetSizerAndFit(vbox)
self.Show()
def onClick(self, event):
x,y = event.GetPosition()
if y > 25 and y < 50:
if x > 30 and x < 170:
wx.MessageBox("Contact", "Contact Header")
elif x > 800 and x < 860:
wx.MessageBox("Exit", "Exit Header")
else:
event.Skip()
def onAccess(self, event):
x,y = event.GetPosition()
if y > 25 and y < 50:
if x > 30 and x < 170:
self.SetCursor(wx.Cursor(wx.CURSOR_HAND))
elif x > 800 and x < 860:
self.SetCursor(wx.Cursor(wx.CURSOR_HAND))
else:
self.SetCursor(wx.Cursor(wx.CURSOR_DEFAULT))
else:
self.SetCursor(wx.Cursor(wx.CURSOR_DEFAULT))
event.Skip()
if __name__ == '__main__':
app = wx.App()
Example()
app.MainLoop()
此代码表示您已通过更改光标完成 hotspot
(联系我们,退出)。