吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1479|回复: 0
收起左侧

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

[复制链接]
1151749862 发表于 2022-2-5 14:54
本帖最后由 1151749862 于 2022-2-5 14:55 编辑

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

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

1.调用tkinter,确定主窗体
[Python] 纯文本查看 复制代码
from tkinter import *

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


2.添加label标签
[Python] 纯文本查看 复制代码
Label01 = Label(root, text="目标卫星")
Label01.grid(row=0, column=0, padx=0, pady=20)


3.生成复选框x5
[Python] 纯文本查看 复制代码
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
[Python] 纯文本查看 复制代码
def sel():
    all_select = ""
    for i in range(0, len(is_check_list)):
        if is_check_list[i].get() == 1:
            all_select += satellite_list[i] + " "
    Label_select["text"] = "所选卫星为:" + all_select

循环访问is_check_list,如果卫星状态为1被选取,则显示出该卫星

5.添加一个button,用于控制执行sel函数
[Python] 纯文本查看 复制代码
Button01 = Button(root, text="确认目标", command=sel)
Button01.grid(row=1, column=0, padx=5, pady=5)


6.添加一个lable,用于展示按钮产生结果
[Python] 纯文本查看 复制代码
Label_select = Label(root, text="")
Label_select.grid(row=1, column=1, columnspan=5)


7.加载窗体
[Python] 纯文本查看 复制代码
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.附上程序完整代码大家一起学习
52pojie.zip (647 Bytes, 下载次数: 2)

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 09:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表