Python的单选框、复选框、下拉框、消息提示框、文件对话框

news/2024/11/29 4:34:42/

优秀教程:https://zhuanlan.zhihu.com/p/569960987?utm_id=0

单行文本框 - Entry

  • textvariable:单行文本框变量,String类型,可以使用变量的set和get可以获取或设置值
  • show:单行文本框内文字显示方式,如密码可以将值设为 show="*"
from tkinter import *
window = Tk()
window.geometry('400x200')def enter_handle():  # 打印事件print("账号:", username.get())  # 获取单行文本框内容print("密码:", password.get())def clear_handle():  # 清空事件username.set("")  # 设置单行文本框内容password.set("")"""账号框架"""
username_frame = Frame(window)
Label(username_frame, text="账号:").pack(side=LEFT)   # 组件按照自左向右方向排列
username = StringVar()      # 与单行文本框绑定的变量
Entry(username_frame, textvariable=username).pack(side=LEFT)
username_frame.pack(pady=5)     # 组件之间的水平间距
"""密码框架"""
password_frame = Frame(window)
Label(password_frame, text="密码:").pack(side=LEFT)
password = StringVar()
Entry(password_frame, textvariable=password, show="*").pack(side=LEFT)
password_frame.pack(pady=5)
"""按钮框架"""
button_frame = Frame(window)
Button(button_frame, text='确定', cursor="hand2", width=5, command=enter_handle).pack(side=LEFT, padx=10)
Button(button_frame, text='清空', cursor="hand2", width=5, command=clear_handle).pack(side=LEFT, padx=10)
button_frame.pack()
window.mainloop()

在这里插入图片描述

多行文本框 - Text

  • width、height:文本框的宽度和高度
  • insert(index, text):在指定位置index插入text
    • index可以使用“line.column”的形式, line从1开始,column从0开始
    • "1.0"代表第一行第一列(文本开始),"end"代表文本最后,"insert"代表广标插入处
  • delete(start, end):删除从start到end的文本
  • get(start,end):获取从start到end的文本
from tkinter import *
window = Tk()
window.geometry('400x200')def enter_handle():print(my_text.get("1.0", "end"))  # 获取值my_text = Text(window, height=5, width=20)
my_text.insert("1.0", "哈哈哈")  # 从开头插入值
my_text.insert("end", "嘻嘻嘻")  # 从最后插入值
my_text.pack()
Button(window, text='确定', cursor="hand2", command=enter_handle).pack()
Button(window, text='清空', cursor="hand2", command=lambda: my_text.delete("1.0", "end")).pack()  # 清空值
Button(window, text='插入', cursor="hand2", command=lambda: my_text.insert("insert", "666")).pack()  # 在光标处插入值
window.mainloop()

单选框 - Radiobutton

  • text:复选框显示的文本
  • variable:单选框变量,多个单选框使用同一个变量
    • 变量类型任意(下面我使用的是文本索引作为变量的值,也就是Int类型)
    • 可以使用变量的set和get获取或设置值
  • value:单选框变量对应的值
  • command:绑定单击事件,单击单选框时触发
from tkinter import *
window = Tk()
window.geometry('400x200')def radio_handle():  # 单击任意单元框时触发print("哈哈哈哈")def enter_handle():	 # 单击事件print(radio_var.get())  # 获取单元框的值print(radio_texts[radio_var.get()])  # 获取单元框的文本radio_texts = ["Java", "Python", "C++", "PHP"]  # 单选框文本
radio_var = IntVar()  # 单选框变量
for index, text in enumerate(radio_texts):Radiobutton(window, text=text, variable=radio_var, value=index, command=radio_handle).pack()
radio_var.set(2)  # 设置第三个单元框选中
Button(window, text='确定', cursor="hand2", command=enter_handle).pack()
window.mainloop()

复选框 - Checkbutton

  • text:复选框显示的文本
  • variable:复选框变量,各个复选框变量独立
    • 通常使用Boolean类型,True代表选中,False代表未选中
    • 可以使用变量的set和get可以获取或设置值
  • command:绑定单击事件,单击复选框时触发
from tkinter import *window = Tk()
window.geometry('400x200')def check_handle():  # 单击任意复选框时触发print("哈哈哈哈")def enter_handle():	 # 单击事件check_selects = []for index, var in enumerate(check_vars):if var.get():  # 获取复选框状态,True代表选中,False代表未选中check_selects.append(check_texts[index])print(check_selects)  # 打印出所有的选择项check_texts = ["唱歌", "跳舞", "绘画", "编程"]  # 复选框文本
check_vars = [BooleanVar() for i in check_texts]  # 复选框变量
for index, text in enumerate(check_texts):Checkbutton(window, text=text, variable=check_vars[index], command=check_handle).pack()
check_vars[1].set(True)  # 设置第二个复选框选中
check_vars[3].set(True)  # 设置第四个复选框选中
Button(window, text='确定', cursor="hand2", command=enter_handle).pack()
window.mainloop()

下拉框 - Combobox

  • values:下拉框选项
  • textvariable:下拉框变量
    • 通常使用String类型,对应下拉框选择中的值
    • 可以使用变量的set和get可以获取或设置值
from tkinter import *
from tkinter.ttk import Combobox
window = Tk()
window.geometry('400x200')def enter_handle():	 # 单击事件print(combobox_var.get())  # 获取值combobox_var = StringVar()  # 下拉框变量
combobox_values = ["唱歌", "跳舞", "绘画", "编程"]  # 下拉框选项
Combobox(window, values=combobox_values, width=10, textvariable=combobox_var).pack()
combobox_var.set(combobox_values[2])  # 设置值为第三个
Button(window, text='确定', cursor="hand2", command=enter_handle).pack()
window.mainloop()

消息提示框 - messagebox

导入:from tkinter import messagebox
在这里插入图片描述

from tkinter import *
from tkinter import messagebox
window = Tk()
window.geometry('400x200')
def enter_handle():messagebox.showinfo("标题","我是消息提示框")Button(window, text='确定', cursor="hand2", command=enter_handle).pack()
window.mainloop()

文件对话框 - filedialog

导入:from tkinter import filedialog
在这里插入图片描述

from tkinter import *
from tkinter import filedialog
window = Tk()
window.geometry('400x200')
def enter_handle():file = filedialog.askdirectory()if file is not None:print(file.name) # 打印文件绝对路径Button(window, text='确定', cursor="hand2", command=enter_handle).pack()
window.mainloop()

http://www.ppmy.cn/news/1129288.html

相关文章

docker系列(9) - docker-compose

文章目录 9. compose编排9.1 介绍9.2 安装9.3 compose常用命令9.4 编排微服务9.4.1 准备docker-compose.yml9.4.2 启动服务9.4.3 测试验证 9. compose编排 9.1 介绍 多服务部署工具,通过一个docker-compose.yml模板文件,定义一组关联的应用容器为一个项…

13.(开发工具篇github)如何在GitHub上上传本地项目

一:创建GitHub账户并安装Git 二:创建一个新的仓库(repository) 三、拉取代码 git clone https://github.com/ainier-max/myboot.git git clone git@github.com:ainier-max/myboot.git四、拷贝代码到拉取后的工程 五、上传代码 (1)添加所有文件到暂存

java 根据身份证号码判断性别

在Java中,您可以根据身份证号码的规则来判断性别。中国的身份证号码通常采用的是以下规则: 第17位数字代表性别,奇数表示男性,偶数表示女性。 通常,男性的出生日期的第15、16位数字是01,女性是02。 请注意&…

深入props --React进阶指南笔记

一次render的过程&#xff1a; 调用React.createElement形成新的element过程&#xff0c;新的element上就会有新的props属性&#xff08;即重新渲染视图的关键&#xff09;。 来看一个demo&#xff1a; /* children 组件 */ function ChidrenComponent(){return <div> I…

centos给用户分配docker权限

原理 docker守护进程启动的时候&#xff0c;会默认赋予名为docker的用户组读写Unix socket的权限&#xff0c;因此只要创建docker用户组&#xff0c;并将当前用户加入到docker用户组中&#xff0c;那么当前用户就有权限访问Unix socket了&#xff0c;进而也就可以执行docker相…

linux权限机制,

目录 用户与组,id,passwd 查看登录用户whomi,who,w 创建用户 useradd 修改用户信息usermod 删除指定用户userdel 组 ​编辑创建修改删除组groupadd groupmod groupdel 权限 ls-l 修改文件所属用户&#xff0c;所属组 chown,chgrp(change group) 修改权限 chmod 默认权…

大模型Tuning分类

类型总结 微调&#xff08;Fine-tunning&#xff09; 语言模型的参数需要一起参与梯度更新 轻量微调&#xff08;lightweight fine-tunning&#xff09; 冻结了大部分预训练参数&#xff0c;仅添加任务层&#xff0c;语言模型层参数不变 适配器微调 &#xff08;Adapter-t…

oracle存储过程的优缺点

定义&#xff1a; 存储过程&#xff08;Stored Procedure &#xff09;是一组为了完成特定功能的SQL 语句集&#xff0c;经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数&#xff08;如果该存储过程带有参数&#xff09;来执行它。存储过程是数据库中的一个重要…