鼠标点击触发事件python_如何在鼠标按下的情况下触发tkinter的“<Enter>”事件?...

在Python3.7的Tkinter中,默认情况下,鼠标点击不会在按压期间触发'Enter'事件。为了实现一个可滚动表格,作者希望在鼠标点击并拖动时检测到行的'Enter'事件。问题在于,只有在释放鼠标按钮时才会触发'Enter'。文章探讨了如何在鼠标按下时也能激活这些事件,以便在表格中实现滚动功能。
摘要由CSDN通过智能技术生成

在tkinter with Python3.7中,事件绑定的默认行为是在释放鼠标之前单击鼠标后不会触发“&lt;Enter&gt;”事件。我打算实现一个可滚动表,这样它就可以检测到“&lt;Button-1&gt;”(鼠标左键单击向下)和“&lt;ButtonRelease-1&gt;”(鼠标左键单击向上)”事件,并将每个表行的小部件“&lt;Enter&gt;”事件绑定起来,以检测鼠标指针何时进入不同的表行。通过这种方式,我可以通过单击一行并在表中拖动来滚动表。我的假设是,即使按住鼠标键也会触发“&lt;Enter&gt;”事件,这是不正确的。所以,我的整个滚动实现遇到了麻烦。我需要在鼠标按下时触发这些事件,否则它就不起作用了。我在做类似的事情:from tkinter import *

class App:

def __init__(self):

self.root = Tk()

# The name kwarg is used to infer the index of the row in the event handlers.

self.labels = [Label(text=f"Label #{i}", name=f"row-{i}") for i in range(5)]

for row, label in enumerate(self.labels):

label.bind("", self.mouse_down)

label.bind("", self.mouse_up)

label.bind("", self.mouse_enter)

label.grid(row=row, column=0)

mainloop()

def mouse_up(self, event):

idx = self.index_from_event(event)

# Do some with the row with the passed index

def mouse_down(self, event):

idx = self.index_from_event(event)

# Do some with the row with the passed index

def mouse_enter(self, event):

# I would like for this to be triggered even when the mouse is pressed down.

# However, by default tkinter doesn't allow this.

pass

def index_from_event(self, event):

# Get the index of the row from the labels name string.

return str(event.widget).split('-')[-1]

在tkinter中按住鼠标按钮1时,有什么方法可以启用鼠标输入事件?efffbot(http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm)上所有关于enter事件的文档都是:

^{pr2}$

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值