tkinter事件绑定

右键菜单

本小节实现右键的粘贴、复制、截切功能

代码

def cut(editor):
    editor.event_generate("<<Cut>>")


def copy(editor):
    editor.event_generate("<<Copy>>")


def paste(editor):
    editor.event_generate('<<Paste>>')


def rightKey(widget, event, editor):
    """功能:cut copy paste"""
    menu_bar = tk.Menu(widget, tearoff=False)
    menu_bar.delete(0, tk.END)
    menu_bar.add_command(label='剪切', command=lambda: cut(editor))
    menu_bar.add_command(label='复制', command=lambda: copy(editor))
    menu_bar.add_command(label='粘贴', command=lambda: paste(editor))
    menu_bar.post(event.x_root, event.y_root)


def menuRK(root, widget):
    """部件添加右键功能<Button-3>"""
    widget.bind("<Button-3>", lambda x: rightKey(root, x, widget))

其余功能可以自行加入代码中,例如加入保存功能

def save(widget):
    file_path = filedialog.asksaveasfilename(title=u'保存文件')
    content = widget.get('1.0', tk.END)
    if file_path is not None:
        with open(file=file_path, mode='w', encoding='utf-8') as file:
            file.write(content)

def rightKey(widget, event, editor):
	menu_bar = tk.Menu(widget, tearoff=False)
    menu_bar.add_command(label='保存', command=lambda: save(editor))

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

回车键

回车键的功能大部分是具有确定的功效
代码

def enterKey(widget, mapping):
	widget.bind("<Return>", lambda x: mapping(widget))

案例

def getValue(widget):
	print(widget.get('1.0', tkinter.END))


text = tkinter.Text(tkinter.TK())
text.pack()
enterKey(text, getValue)

隐藏和显示

隐藏或显示组件
代码

def hideOrDisplay(widgets, status='hide'):
	if status.lower() == 'hide':
		widgets.pack_forget()
	elif status.lower() == 'display':
		widgets.pack()

进度条

制作进度条的效果
代码

def progressBar(widget):
	sub_win = tkinter.Toplevel(widget)
	sub_win.title("下载")
	sub_win.geometry('420x20+100+30')
	canvas = tkinter.Canvas(sub_win, width=280, height=10, bg="blue")
	canvas.pack()
	fill_line = canvas.create_rectangle(2, 2, 0, 10, fill="green")
	for n in range(280):
		n += 1
		canvas.coords(fill_line, (0, 0, n, 10))
		sub_win.update()
		time.sleep(0.2)

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

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hjhcos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值