listbox控件实现在1个文本框里:增加内容、也可以选中删除对应内容 | w=e.widget →根据传入的事件获取相应的控件 | 返回输出当前选中的项目的索引,,以元组的形式返回→w.curselection()
# 一定要定义编码
# -*- coding: UTF-8 -*-
# 【1】导入库↓顺便给tkinter库取个别名为tk,
# 好处是调用的时候更方便调用。
import tkinter as tk
# --------自定义按钮对应的函数--开始--------------- #
# 定义函数必须括号加1个变量,可以是任何字母
def AnNiu1_DianJi():
lbox1.insert(tk.END,shuru1.get())
def lbox1_DianJi(e):
# 根据传入的事件获取相应的控件
w=e.widget
# 返回输出当前选中的项目的索引,以元组的形式返回↓
# print(w.curselection())
# 定义1个变量为当前选中项的索引,并提前声明全局变量
global t # 这样声明全局变量以后,可以这个变量用于下1个函数,否则会报错
t=w.curselection()
# 把lbl1的文本框的文字显示为当前选中项对应的值
lbl1.config(text=w.get(t))
def AnNiu2_ShanChu():
lbox1.delete(t)
# --------自定义按钮对应的函数--结束--------------- #
# 【1】创建软件窗口实体,窗体
chuangkou1=tk.Tk()
# 【2】软件界面顶部显示名称以及版本号
chuangkou1.title("listbox控件实现:增加、删除")
# 【3】软件的长宽、在当前桌面屏幕的左边距、顶上边距
# 定义窗口自身宽度
ck1w=400
# 定义窗口自身高度
ck1h=300
# 获取屏幕宽度
pmw=chuangkou1.winfo_screenwidth()
# 获取屏幕高度
pmh=chuangkou1.winfo_screenheight()
# 计算水平方向的起点位置坐标
x1=pmw/2-ck1w/2
# 计算垂直方向的起点位置坐标
y1=pmh/2-ck1h/2
# 设置窗体所在屏幕的坐标位置
chuangkou1.geometry("%dx%d+%d+%d"%(ck1w,ck1h,x1,y1))
# 【4】软件界面窗体的背景属性,背景颜色改成绿色,绿色的颜色属性值
chuangkou1["background"]="#ffffcc"
# 【5】增加1个文本标签,
lbl1=tk.Label(chuangkou1,text="测试显示区域:")
lbl1.pack(anchor="w")
# 开始载入listbox控件,看起来像txt文本框,但是不支持直接在里面输入。
lbox1=tk.Listbox(chuangkou1)
lbox1.pack(anchor="w")
# 绑定1个键盘事件
lbox1.bind("<<ListboxSelect>>",lbox1_DianJi)
# 再次载入1个单行文本框
shuru1=tk.Entry(chuangkou1)
shuru1.pack(anchor=tk.W,side=tk.LEFT)
# “增加”按钮的布局以及关联函数
AnNiu1=tk.Button(chuangkou1,text="增加",command=AnNiu1_DianJi)
AnNiu1.pack(anchor=tk.W,side=tk.LEFT,padx=10)
# “删除”按钮的布局以及关联函数
AnNiu2=tk.Button(chuangkou1,text="删除",command=AnNiu2_ShanChu)
AnNiu2.pack(anchor=tk.W,side=tk.LEFT,padx=10)
# ------末尾必须放死循环代码---分割线------ #
# 【End.1】持续显示软件界面,相当于死循环,↓
# 【End.1】这个窗体的作用是监听这个界面发生的一切事件,包括鼠标点击动作。
# 【End.1】下面这个死循环代码必须放在最后面。
chuangkou1.mainloop()