Python+tkinter使用爬虫数据开发实例项目过程实录【3】tkinter控件细节设置

基本的框架布局好,就可以添加控件了,该实例涉及控件:输入框、透明背景图片、按钮、单选框、树形菜单(作为表格使用)、多行文本框(及文本框中添加控件)、标签、下拉菜单、滚动条

一、输入框

1、监控编辑状态,实现每输入一个字符时,都可以触发相应事件。
这个处理其实和输入框无关,而是通过监控,输入框绑定的StringVar类型对象值变化,来实现。比如下面这个Entry_query输入框,绑定了entry_var对象
entry_var = tk.StringVar()
Entry_query = ttk.Entry(root, textvariable=entry_var)
监控entry_var对象的值变化可以这样写
entry_var.trace("w", lambda name, index, mode, arg = entry_var: onEditChange(arg))
# 这样只要entry_var的值发生变化,就会执行onEditChange
2、监控输入框是否按下回车键。
只要绑定事件<Return>就可以了
Entry_query.bind("<Return>", onEditEnter)
# 按下回车,就会执行onEditEnter

自动显示、隐藏清空按钮效果演示
在这里插入图片描述


二、按钮

1、动态创建按钮,并动态传参,这个之前有单独发一篇文章,要了解的可以去看看
https://blog.csdn.net/wosind/article/details/100071232
2、配合动态创建按钮,就可以把所有按钮处理的业务,集中组织到一个方法中
在这里插入图片描述


三、树形菜单(作为表格形态)

1、两个和表格相关的事件绑定
<<TreeviewSelect>>:菜单项切换,对应表格就是行的选中。
<Double-Button-1>:双击事件,可以作为行双击
在这里插入图片描述
2、实现点击标题,进行排序或其他业务逻辑。类似按钮动态传参,heading创建的时候绑定一个匿名函数

tree_qlist.heading('', text='',command=lambda arg=x['col']: onListHeadClicked(arg))

四、多行文本框(Text)

1、在文本中插入控件,比如按钮,标签之类的
在这里插入图片描述
在这里插入图片描述


五、标签(Lable)

在这里插入图片描述
在这里插入图片描述

配合4个事件,完成上面的效果
<Enter>:鼠标移入
<Leave>:鼠标移出
<Button-1>:鼠标点左键
<Button-3>:鼠标点击右键


五、滚动条

滚动条使用率还比较高,不过比较简单,照例子进行必要的配置就可以了,几个属性也好理解

scr1 = ttk.Scrollbar(self.frm_left, orient=tk.VERTICAL)
self.tree_qlist.configure(yscrollcommand=scr1.set)
scr1['command'] = self.tree_qlist.yview
scr1.grid(row=1, column=1, sticky=tk.NS)

本文主要罗列了一些重点,具体的一些实现原理以及操作步骤,内容还是比较多的,找时间我会录制一个视频,配合讲解一下。如果有具体的问题,也欢迎留言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章