【发布时间】:2015-09-24 02:58:46
【问题描述】:
我有一个带有水平和垂直滚动条的文本小部件。我希望能够正常上下滚动,并在按住 shift 的同时左右滚动。我不知道将<Shift-MouseWheel> 事件绑定到什么,或者回调应该是什么。这是mainWindow(Tk.TopLevel)的__init__():的代码sn-p
# console text
self.yScroll = Tk.Scrollbar(self)
self.yScroll.pack(side=Tk.RIGHT, fill=Tk.Y)
self.xScroll = Tk.Scrollbar(self)
self.xScroll.pack(side=Tk.BOTTOM, fill=Tk.X)
self.log = Tk.Text(self,
wrap=Tk.NONE,
width=80,
height=24,
yscrollcommand=self.yScroll.set,
xscrollcommand=self.xScroll.set)
self.log.pack()
self.yScroll.config(command=self.log.yview)
self.xScroll.config(command=self.log.xview, orient=Tk.HORIZONTAL)
# shift scroll binding
self.bind('<Shift-MouseWheel>', ) # what do I need here?
我已成功将 shift-scroll 绑定到简单的打印功能等,但我不确定如何将其绑定到文本框滚动。
【问题讨论】:
-
你是说你不知道怎么调用widget的
xview命令? -
或多或少...我不确定在哪里传递事件并使其实际滚动窗口。试过了:
self.bind('<Shift-MouseWheel>', self.log.xview)得到了:TclError: bad option "<Tkinter.Event instance at 0x0572C1E8>": must be moveto or scroll -
如果您也想启用常规水平滚动,或者如果您收到我使用
(event.delta/120)作为参数时遇到的错误,即使这仍然有效,您可以查看这个相关的 q/a :stackoverflow.com/questions/46194948/…
标签: python user-interface events scroll tkinter