【发布时间】:2010-05-03 14:00:16
【问题描述】:
我正在寻找一种在用户将鼠标悬停在
将鼠标放在 wx.ListCtrl 的列标题上,这可能吗?
我尝试绑定wx.EVT_MOTION,但看起来它只适用于
列出项目,而不是标题.. 我做错了吗?
提前致谢!
(Xubuntu 9.04 上的 wxPython 2.8.9.1)
【问题讨论】:
我正在寻找一种在用户将鼠标悬停在
将鼠标放在 wx.ListCtrl 的列标题上,这可能吗?
我尝试绑定wx.EVT_MOTION,但看起来它只适用于
列出项目,而不是标题.. 我做错了吗?
提前致谢!
(Xubuntu 9.04 上的 wxPython 2.8.9.1)
【问题讨论】:
我认为目前这是不可能的,EVT_MOTION 仅在您位于列表本身时通过 GetPosition() 获取坐标,当您将鼠标悬停在列上时,这些列似乎不会注册坐标。
我能够在 wx.lib.agw.UltimateListCtrl 中找到这个link,您可能想在 wxpython 邮件列表中询问是否/何时发布此功能.
【讨论】:
我找不到对列标题执行此操作的方法,但这适用于单个单元格:
self.lc = wx.ListCtrl(self, style=wx.LC_REPORT)
# ...
self.lc.Bind(wx.EVT_MOTION, self.OnMouseMotion)
def OnMouseMotion(self, evt):
pos = self.lc.ScreenToClient(wx.GetMousePosition())
item_index, flag = self.lc.HitTest(pos)
tip = self.lc.GetToolTip()
if flag == wx.LIST_HITTEST_ONITEMLABEL:
tip.SetTip('Some information about ' + self.lc.GetItemText(item_index))
else:
tip.SetTip('')
evt.Skip()
当我将鼠标悬停在列标题上时,它不会发送事件,至少在我的 PC (Win 10) 上不会。
我在这里找到了这个答案:https://coderedirect.com/questions/378870/how-to-tweak-my-tooltips-in-wxpython。
【讨论】: