1151749862 发表于 2022-2-5 14:54

【笔记】Python---GUI中复选框CheckButton的具体应用

本帖最后由 1151749862 于 2022-2-5 14:55 编辑

前段时间编写爬取卫星轨道根数小程序
用到了许多Python-Gui的知识,这几天有空就分享给大家

这次主要介绍的复选框CheckButtond的具体应用

1.调用tkinter,确定主窗体
from tkinter import *

root = Tk()
root.geometry("360x100+690+450")
root.title("CheckButton控件")

2.添加label标签
Label01 = Label(root, text="目标卫星")
Label01.grid(row=0, column=0, padx=0, pady=20)

3.生成复选框x5
satellite_list = ["Z-1", "X-2", "C-3", "V-4", "B-5"]
# 用一组值存储选中哪些
is_check_list = []

# 通过循环生成5个复选框
for satellite in satellite_list:
    is_check_list.append(IntVar())
    CheckButton01 = Checkbutton(root, text=satellite, variable=is_check_list[-1])
    CheckButton01.grid(row=0, column=len(is_check_list), padx=5, pady=5)
这里使用了一个循环,生成5个依次排列的复选框
同时将对应卫星的选择状态贴入列表is_check_list
想要查询对应卫星是否被选择,直接访问is_check_list就行了

4.定义输出值函数sel
def sel():
    all_select = ""
    for i in range(0, len(is_check_list)):
      if is_check_list.get() == 1:
            all_select += satellite_list + " "
    Label_select["text"] = "所选卫星为:" + all_select
循环访问is_check_list,如果卫星状态为1被选取,则显示出该卫星

5.添加一个button,用于控制执行sel函数
Button01 = Button(root, text="确认目标", command=sel)
Button01.grid(row=1, column=0, padx=5, pady=5)

6.添加一个lable,用于展示按钮产生结果
Label_select = Label(root, text="")
Label_select.grid(row=1, column=1, columnspan=5)

7.加载窗体
root.mainloop()

8.总结:本节难点在于理解is_check_list.append(IntVar())
执行本行后is_check_list[]中会有一系列IntVal类型的数值,但是此时没有定义
执行下一行后将variable(按钮当前状态)赋值给向is_check_list列表最后一位,就能将对应卫星的选择状态存入列表is_check_list的元素中,
后续想要获取某个卫星是否被选择,可以直接访问is_check_list获得,选择为1,未被选择为0

9.附上程序完整代码大家一起学习


页: [1]
查看完整版本: 【笔记】Python---GUI中复选框CheckButton的具体应用