📅  最后修改于: 2023-12-03 15:35:45.635000             🧑  作者: Mango
GetToolByPos(pos)
是 wxPython 用于工具栏(Toolbar)控件的一个方法,用于通过指定位置返回对应的工具栏Tool
。
GetToolByPos(pos)
| 参数 | 类型| 说明 | | --- | --- | --- | | pos | wx.Point 或 (x, y) 元组 | 位置 |
返回值是一个 Tool
对象,表示在工具栏上单击的工具项。如果单击了工具栏背景或分隔符,或者单击了空间不包含任何工具项的工具栏上,该函数将返回 None
值。
| 类型 | 说明 | | --- | --- | | wx.Command | 工具项是标准工具项 | | wx.Control | 工具项是自定义控件 | | wx.StaticText | 工具项是静态文本 | | wx.StaticBitmap and wx.BitmapButton | 工具项是位图 | | wx.ComboBox | 工具项是下拉列表框 | | wx.TextCtrl | 工具项是工具栏中的文本输入框 | | None | 如果单击背景、分隔符或工具栏上的空间,则没有工具项被单击 |
import wx
class MyFrame(wx.Frame):
def __init__(self):
super().__init__(None, title="GetToolByPos() Test", size=(400,300))
self.InitUI()
def InitUI(self):
panel = wx.Panel(self)
toolbar = self.CreateToolBar()
tool_options = toolbar.AddTool(1, "Options", wx.Bitmap("icons/options.png"))
tool_exit = toolbar.AddTool(2, "Exit", wx.Bitmap("icons/exit.png"))
toolbar.Realize()
self.Bind(wx.EVT_TOOL, self.OnOptionsClicked, tool_options)
self.Bind(wx.EVT_TOOL, self.OnExitClicked, tool_exit)
self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown)
self.Center()
self.Show(True)
def OnOptionsClicked(self, event):
wx.MessageBox('You clicked "Options"', 'Message', wx.OK)
def OnExitClicked(self, event):
self.Close(True)
def OnLeftDown(self, event):
tool = self.GetToolBar().GetToolByPos(event.GetPosition())
if tool is not None:
print(tool.GetLabel())
app = wx.App()
frame = MyFrame()
app.MainLoop()
该示例程序创建了一个带有两个工具项 Option 和 Exit 的工具栏。当单击工具栏之一上的工具项时,消息框将显示。当单击工具栏其他部分时,程序将在控制台上打印出一个空行。