Python: 当鼠标光标不在文本框中时在文本框中使用鼠标滚轮滚动 (tkinter)
Python: Scrolling with mouse wheel in a textbox while mouse curser is not in the textbox (tkinter)
我在 GUI 中创建了一个文本框,当鼠标光标位于文本框小部件上时,鼠标滚轮可以滚动。当鼠标光标不在文本框小部件上时,我希望能够做到这一点。我有几个带有鼠标悬停事件的标签。有时文本对于整个文本框小部件来说太长了,这意味着我必须在鼠标光标位于我的标签上时向下滚动。这样做的原因是,当鼠标光标不再位于标签上时,文本将被删除,因此必须在标签上进行滚动。
def mousewheel(event):
textbox.yview_scroll(-1*(event.delta/120), "units")
textbox = Text(ctr_mid, height=30, width=60, font="Arial")
textbox.grid(row=6,sticky=S)
textbox.bind_all("<MouseWheel>", mousewheel)
我在网上寻找解决方案并在网上找到了 mouswheel 功能,但是在尝试执行它时出现此错误:
Traceback (most recent call last):
File "C:\Users\Homie\AppData\Local\Programs\Python\Python36-
32\lib\tkinter\__init__.py", line 1699, in __call__
return self.func(*args)
File "C:\Users\Homie\PycharmProjects\bluescreen\Game.py", line 402, in
mousewheel
self.textbox.xview_scroll(-1*(event.delta / 120), "units")
File "C:\Users\Homie\AppData\Local\Programs\Python\Python36-
32\lib\tkinter\__init__.py", line 1724, in xview_scroll
self.tk.call(self._w, 'xview', 'scroll', number, what)
_tkinter.TclError: expected integer but got "1.0"
这是我第一次post来这里,如果有任何错误,我深表歉意。
我也是新手,这是我的第一个post。但是我有同样的错误并且很容易地解决了它。
您 post 编辑的错误消息说它需要一个整数但得到了其他东西,一个浮点数(“1.0”)。所以你需要保证“-1*(event.delta/120)”的结果是一个整数,而不是一个浮点数。因此,您的鼠标滚轮功能的新代码如下所示:
def mousewheel(event):
textbox.yview_scroll(int(-1*(event.delta/120)), "units")
我在 GUI 中创建了一个文本框,当鼠标光标位于文本框小部件上时,鼠标滚轮可以滚动。当鼠标光标不在文本框小部件上时,我希望能够做到这一点。我有几个带有鼠标悬停事件的标签。有时文本对于整个文本框小部件来说太长了,这意味着我必须在鼠标光标位于我的标签上时向下滚动。这样做的原因是,当鼠标光标不再位于标签上时,文本将被删除,因此必须在标签上进行滚动。
def mousewheel(event):
textbox.yview_scroll(-1*(event.delta/120), "units")
textbox = Text(ctr_mid, height=30, width=60, font="Arial")
textbox.grid(row=6,sticky=S)
textbox.bind_all("<MouseWheel>", mousewheel)
我在网上寻找解决方案并在网上找到了 mouswheel 功能,但是在尝试执行它时出现此错误:
Traceback (most recent call last):
File "C:\Users\Homie\AppData\Local\Programs\Python\Python36-
32\lib\tkinter\__init__.py", line 1699, in __call__
return self.func(*args)
File "C:\Users\Homie\PycharmProjects\bluescreen\Game.py", line 402, in
mousewheel
self.textbox.xview_scroll(-1*(event.delta / 120), "units")
File "C:\Users\Homie\AppData\Local\Programs\Python\Python36-
32\lib\tkinter\__init__.py", line 1724, in xview_scroll
self.tk.call(self._w, 'xview', 'scroll', number, what)
_tkinter.TclError: expected integer but got "1.0"
这是我第一次post来这里,如果有任何错误,我深表歉意。
我也是新手,这是我的第一个post。但是我有同样的错误并且很容易地解决了它。
您 post 编辑的错误消息说它需要一个整数但得到了其他东西,一个浮点数(“1.0”)。所以你需要保证“-1*(event.delta/120)”的结果是一个整数,而不是一个浮点数。因此,您的鼠标滚轮功能的新代码如下所示:
def mousewheel(event):
textbox.yview_scroll(int(-1*(event.delta/120)), "units")