本帖最后由 paypojie 于 2022-12-3 19:24 编辑
使用StringVar() 方法动态地获取用户光标选中的项目的内容
思路以及仿照来源截图 因为是GIF的格式 不支持的图片类型 GIF图片地址
本人仿写的截图
设计思路
根据截图仿照一个功能差不多的界面
导入相关模块 tkinter和messagebox
创建主窗口
主窗口图标和标题就不弄了 设置主窗口的大小
创建一个label控件 用来显示在主窗口的内容 内容是一个动态字符串 内容由鼠标光标选中的项目决定
创建一个函数 该函数绑定之后创建的按钮控件
创建按钮控件 按钮与函数相关联点击按钮执行函数
创建列表框 设置列表框中的值 然后再将一个列表中所有的值插入到列表框中
显示主窗口
本人源码
[Python] 纯文本查看 复制代码
import tkinter as tk
from tkinter import messagebox
win = tk.Tk()
win.geometry('400x200+300+200')
# 创建一个动态字符串 该动态字符串绑定接下来创建的label控件 用来获取或者更改控件的值
var1 = tk.StringVar()
lab1 = tk.Label(win,bg='gray',font=('微软雅黑,20'),width=20,textvariable=var1)
lab1.pack()
# 定义一个函数
def click_button():
try:
# 获取之后要创建的列表框控件的值 get()方法需要传入索引 curselection()方法可以返回用户光标选中的项目的的索引
lbr = lb.get(lb.curselection())
# 之前定义好的动态字符串设置值为获取到的值
var1.set(lbr)
except Exception as e:
e = '发现一个错误'
# 弹出一个错误提示的弹窗
messagebox.showwarning(e,'未选中任何内容')
# 创建一个按钮 绑定之前定义的函数
bt = tk.Button(win,text='获取当前选项',command=click_button)
bt.pack()
# 创建另一个动态字符串对象 将动态字符串对象的值设置为一个元组
var2 = tk.StringVar()
var2.set(("C语言辅导班", "Python答疑辅导", "Java答疑辅导", "C++辅导"))
# 创建一个列表框 将列表框的值设置为之前的定义好的var2变量
lb = tk.Listbox(win,height=6,listvariable=var2)
lb.pack()
# 用for循环将值插入到列表框控件
item = ["C", "Java", "Python", "C#", "Golang", "Runby"]
for i in item:
lb.insert('end',i)
win.mainloop()
|