在Tkinter中,如何使用鼠标滚轮在“文本”小部件中滚动时,如何在屏幕上(在“文本”小部件中)插入文本?
答案 0 :(得分:0)
以下是代码中问题的示例回答。这不是问题的一部分。这是答案。我确定有更多方法可以回答它(这就是我写作的原因,以及一个例子'答案)。
from tkinter import *
…
def create_widgets(self):
…
self.textWidget.bind("<MouseWheel>", self.mouse_wheel) #Windows mouse wheel
self.textWidget.bind("<Button-4>", self.mouse_wheel) #Linux mouse wheel
self.textWidget.bind("<Button-5>", self.mouse_wheel) #Linux mouse wheel (one is for scrolling up and one is for scrolling down, in Linux)
def mouse_wheel(self, event):
self.textWidget.mark_set(INSERT, "current display linestart") #display makes it uses display lines (as in when word wrap is on in case you have a line that spans a lot of 'display' lines)
#Don't add return "break" here unless you want to write the entire mouse wheel functionality yourself.
此代码使用mark_set
将插入位置放在"current display linestart"
(这是鼠标指针所在行的起点)。滚动鼠标滚轮时会调用mouse_wheel
方法。这是一个跨平台的解决方案,因为它提供了在Linux和其他系统(如Windows)上执行此操作的方法。