如何在使用鼠标滚轮时保持插入在屏幕上



在Tkinter中,如何在鼠标滚轮滚动文本小部件时保持文本插入在屏幕上(在文本小部件中)?

下面是用代码回答问题的示例。这不是问题的一部分。这就是答案。我相信有更多的方法来回答这个问题(所以这就是为什么我写了一个"例子"的答案)。

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)上执行此操作的方法。

相关内容

  • 没有找到相关文章

最新更新