使用箭头键滚动的Tkinter列表框

德鲁

我正在尝试使我的列表框突出显示第一个对象(这与发生self.e1.select_set(0)。现在我尝试在列表框中滚动并在按下向下箭头时突出显示下一个项目,或者通过单击向上箭头来选择下一个项目我以为我可以做到有约束力但没有运气。

 def body(self, master):        
    self.e1 = tk.Listbox(master, selectmode=tk.SINGLE, height = 3, exportselection=0)
    self.e1.insert(tk.END, "1")
    self.e1.insert(tk.END, "2")

    self.e1.grid(row=0, column=1)
    self.e1.select_set(0)

    self.e1.bind("<Down>", self.OnEntryDown)
    self.e1.bind("<Up>", self.OnEntryUp)

def OnEntryDown(self, event):
    self.e1.yview_scroll(1, "units")

def OnEntryUp(self, event):
    self.e1.yview_scroll(-1, "units")

谢谢!

fhdrsdg

顾名思义,yview_scroll仅更改视图,而不更改选择。

就像使用选择第一个对象一样select_set(0),您也可以使用select_set选择其他对象。保留选择哪个对象的参考,并在按下按钮时使用该参考选择下一个或上一个对象。只要确保所选内容不低于0或超过列表框的大小即可。

代码示例:

def body(self, master):        
    self.e1 = tk.Listbox(master, selectmode=tk.SINGLE, height = 3, exportselection=0)
    self.e1.insert(tk.END, "1")
    self.e1.insert(tk.END, "2")

    self.e1.grid(row=0, column=1)
    self.selection = 0
    self.e1.select_set(self.selection)

    self.e1.bind("<Down>", self.OnEntryDown)
    self.e1.bind("<Up>", self.OnEntryUp)

def OnEntryDown(self, event):
    if self.selection < self.e1.size()-1:
        self.e1.select_clear(self.selection)
        self.selection += 1
        self.e1.select_set(self.selection)

def OnEntryUp(self, event):
    if self.selection > 0:
        self.e1.select_clear(self.selection)
        self.selection -= 1
        self.e1.select_set(self.selection)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Tkinter:如何使用箭头键滚动整个画布?

来自分类Dev

Tkinter滚动列表框

来自分类Dev

如何启用使用箭头键滚动?

来自分类Dev

Python Tkinter使用箭头键同时滚动两个TEXT小部件

来自分类Dev

JavaFX:使用箭头键滚动和焦点遍历

来自分类Dev

如何使用箭头键滚动Flutter Web App

来自分类Dev

如何使用箭头键上下滚动引导程序模式

来自分类Dev

网站不会使用 chrome 中的箭头键滚动

来自分类Dev

使用箭头键导航

来自分类Dev

防止空格键和箭头键滚动网页?

来自分类Dev

防止使用箭头键进行页面滚动,但仍允许光标在文本字段内移动?

来自分类Dev

使用向上和向下箭头键滚动(突出显示)HTML表中的行

来自分类Dev

在contenteditable div中使用箭头键移动插入符号时,停止不必要的滚动

来自分类Dev

列表框的滚动事件

来自分类Dev

使用箭头键在表格中导航

来自分类Dev

使用箭头键更改背景颜色

来自分类Dev

无法使用箭头键移动JLabel

来自分类Dev

使用箭头键浏览输入

来自分类Dev

使用fprintf发送箭头键

来自分类Dev

无法使用箭头键移动JLabel

来自分类Dev

使用箭头键更改图像?

来自分类Dev

Javascript:使用箭头键提交表单

来自分类Dev

Java 处理使用箭头键瞄准

来自分类Dev

防止箭头键随着keydown事件滚动

来自分类Dev

箭头键的滚动锁定修改器

来自分类Dev

箭头键的滚动锁定修改器

来自分类Dev

如何在Firefox中配置箭头键滚动步骤

来自分类Dev

遍历tkinter列表框

来自分类Dev

如何使用 tkinter 显示带有滚动条的列表框中所选项目的详细信息