上节实现了目录树的基本呈现,不过,这让我很不满意。
第一、我只实现了一层目录的显示。但目录树都是多层的。
第二、我没有对目录树的事件进行处理。比如单出、展开目录树的事件处理。
所以,这一节准备实现目录树的事件处理。
每个控件都有类似的虚拟事件,除了能用的比如<Enter>等事件外,还有控件特有的事件。比如,TreeView控件的事件就有三个,可参考如下链接:
https://docs.python.org/3/library/tkinter.ttk.html#treeview
于是,我在初始化函数中用bind函数来绑定事件的回调函数onSelectDir(), onOpenDir(),onCloDir()。并且我规划一个专门用于展开目录的函数displayDirs(),专门来处理如何展开目录。
一般的事件函数形如:def onSelectDir(lf, event),其中event事件包含如下信息:
比如event.widget表示是哪个控件发送的事件,你还可以利用x,y跟踪鼠标的位置,
以及char、keysym等来用跟踪哪键盘上的键被按下了。
详细可参考:https://docs.python.org/3/library/tkinter.html#bindings-and-events
也可参考:http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm
如下选择事件onSelectDir(),我暂时实现输出选中项的节点功能:
在展开节点事件中,我计划:当展开该节点时,就把其下一级子目录展开:
所以,我暂定义了一个函数displayDirs(),如下:
该函数实现,将指定目录节点下的子目录添加到节点下一级,并且将对于目录的绝对路径保存在节点的tags变量中。
注意:我已经在初始化函数中先插入了根节点,并且调用了此函数(参考第一张图的最后一段代码)。显示的结果如下:
不过,不太漂亮,先把功能实现,美观后续再优化了。
本文发布于:2023-02-28 20:13:00,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/167766381682039.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:treeview控件(treeview控件怎么用).doc
本文 PDF 下载地址:treeview控件(treeview控件怎么用).pdf
留言与评论(共有 0 条评论) |