python -tkinter

在Button的command绑定中,如果给的一个函数,则表示执行一次。

import tkinter as Tkfrom tkinter import messageboxi = 0def myLabel():global root,is = Tk.Label(root,text="the import thing is :" )s.pack()root = Tk.Tk()def fun1():if messagebox.showwarning("hello","你确定要离开吗?"):root.destroy()def fun2():if messagebox.showwarning("hello","just is hello"):root.destroy()w1 = Tk.Label(root,text="欢迎来到我的世界")
w2 = Tk.Label(root,text="好好学习,天天向上",background="white")
w3 = Tk.Label(root,text="轻松愉快,就选python!",background="red")w1.pack()
w2.pack()
w3.pack()b = Tk.Button(root,text="Python",command = myLabel())
b.pack()root.protocol('WM_DELETE_WINDOW',fun1)
root.mainloop()

此时表示执行myLabel()函数一次,在点击Button时不在进行调用,正确的写法是去掉括号

Button绑定的两种方法:

1、第一种是方法绑定事件

b = Tk.Button(root,text="Python",command = myLabel) b.pack()

2、第二种方法绑定事件

b = Tk.Button(py, text = "Python") # command = myLabel ⽊有了

b.bind("<Button-1>", myLabel) # 多了这⼀句

 

使用grid布局:

import tkinter as Tkfrom tkinter import messageboxroot = Tk.Tk()Tk.Label(root,text="account:").grid(row=0,sticky="w")
Tk.Entry(root).grid(row=0,column=1,sticky="e")Tk.Label(root,text="password:").grid(row=1,sticky="w")
Tk.Entry(root).grid(row = 1,column = 1,sticky="e")root.mainloop()

 使用Lable标签模拟Button标签

import tkinter as Tkfrom tkinter import messageboxdef myLabel(event):global roots = Tk.Label(root,text="好好学习,天天向上")s.pack()root = Tk.Tk()n = Tk.Label(root,text="button")
n.bind("<Button-1>",myLabel)
n.pack()root.mainloop()

简单的登录系统:

import tkinter as Tkfrom tkinter import messageboxdef reg():accout_get1 = accout_get.get()password_get1 = password_get.get()if accout_get1 == "liyong" and password_get1 == "102520":msg_label["text"] = "load succecced!"else:msg_label["text"] = "load fail!"root = Tk.Tk()s = Tk.Label(root,text="ok")accout_label = Tk.Label(root,text="accout:")
accout_label.grid(row=0,sticky="w")
accout_get = Tk.Entry(root)
accout_get.grid(row=0,column=1,sticky="e")password_label = Tk.Label(root,text="password:")
password_label.grid(row=1,column=0,sticky="w")password_get = Tk.Entry(root)
password_get.grid(row=1,column=1,sticky="e")button_load = Tk.Button(root,text="load",command=reg)
#button_load.bind("Button-1",reg)
button_load.grid(row=2,column=1,sticky="e")msg_label = Tk.Label(root,text=" ")
msg_label.grid(row=3)root.mainloop()

其中msg_label的文件应该是通过什么方式进行了重写,

msg_label["text"] = "load succecced!"

这里的Label属性实现了动态的展示

菜单的简单添加:

import tkinter as Tkfrom tkinter import messageboxroot = Tk.Tk()menuBar = Tk.Menu(root)for item in ["文件","编辑","视图","关于"]:menuBar.add_command(label = item)root["menu"] = menuBarroot.mainloop()

这⾥要注意的是我们可以先把⼦菜单做好,然后再做上层菜单。

import tkinter as Tkfrom tkinter import messageboxroot = Tk.Tk()menuBar = Tk.Menu(root)fMenu = Tk.Menu(menuBar)
for item in ["新建","打开","保存","另存为","退出"]:fMenu.add_command(label = item)eMenu = Tk.Menu(menuBar)
for item in ["复制","粘贴","剪切","撤销"]:eMenu.add_command(label = item)vMenu = Tk.Menu(menuBar)
for item in ["默认视图","全屏模式","显示/隐藏菜单"]:vMenu.add_command(label = item)aMenu = Tk.Menu(menuBar)
for item in ["版权信息","帮助文档"]:aMenu.add_command(label = item)menuBar.add_cascade(label = "文件", menu = fMenu)
menuBar.add_cascade(label = "编辑", menu = eMenu)
menuBar.add_cascade(label = "视图", menu = vMenu)
menuBar.add_cascade(label = "关于", menu = aMenu)root["menu"] = menuBarroot.mainloop()

弹出菜单的制作:

import tkinter as Tkfrom tkinter import messageboxdef myLabel():global rootTk.Label(root,text="python !!!").pack()root = Tk.Tk()menuBar = Tk.Menu(root)for item in ["C/C++","JavaEE","Android","PHP","UI","IOS","JS","could"]:menuBar.add_command(label = item)menuBar.add_command(label = "python",command = myLabel)def pop(event):menuBar.post(event.x_root,event.y_root)root.bind("<Button-3>",pop)root.mainloop()

radiobutton:

import tkinter as Tkfrom tkinter import messageboxroot = Tk.Tk()menuBar = Tk.Menu(root)
sonBar = Tk.Menu(menuBar)item = ["语文","数学","英语","逻辑","科学","心理","体育"]for echa in item:sonBar.add_radiobutton(label = echa)menuBar.add_cascade(label = "课程",menu = sonBar)root["menu"] = menuBarroot.mainloop()

checkbutton

import tkinter as Tkfrom tkinter import messageboxroot = Tk.Tk()menuBar = Tk.Menu(root)
sonBar = Tk.Menu(menuBar)items = ["语文","数学","英语"]for item in items:sonBar.add_checkbutton(label = item)menuBar.add_cascade(label = "file",menu = sonBar)root["menu"] = menuBarroot.mainloop()

总结: tkinter.messagebox的几种方法

showinfo
showwarning
showerror
askquestion
askyesno
askokcancel
askretrycancel
 

checkButton使用

import tkinter as Tkfrom tkinter import messageboxdef fun1():global lablab["text"] = "python 1 check"root = Tk.Tk()button1 = Tk.Checkbutton(root,text="python1",command = fun1)
#root.bind()
button1.pack()lab = Tk.Label(root,text=" ")
lab.pack()root.mainloop()

text文本使用

import tkinter as Tkfrom tkinter import messageboxroot =Tk.Tk()text = Tk.Text(root,height=30,widt=30)
text.pack()root.mainloop()

Canvas

Toplevel

import tkinter as Tkfrom tkinter import messageboxroot =Tk.Tk()lb1 = Tk.Label(root,text="root label")
lb1.pack()la2 = Tk.Toplevel(root,width=30,height=40)
#la2.pack()root.mainloop()

button:

画象棋:

from tkinter import *
root = Tk()
root.title("中国象棋棋盘⼿绘")
canv = Canvas(root, width = 400, height = 450)
canv.create_line((0,2), (400,2), width = 2)
for i in range(10):canv.create_line((0, i * 50), (400, i * 50), width = 2)canv.create_line((3,0), (3,450), width = 2)for i in range(8):canv.create_line((i * 50,0), (i * 50,200), width = 2)for i in range(8):canv.create_line((i * 50,250), (i * 50,450), width = 2)canv.create_line((397,0), (397,450), width = 2)canv.create_line((150,0), (250,100), width = 2)canv.create_line((150,100), (250,0), width = 2)canv.create_line((150,450), (250,350), width = 2)canv.create_line((150,350), (250,450), width = 2)canv.create_text(110, 220, text = "汉界")canv.create_text(290, 220, text = "楚河")canv.pack()root.mainloop()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/54838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[PICO VR眼镜]眼动追踪串流Unity开发与使用方法,眼动追踪打包报错问题解决(Eye Tracking/手势跟踪)

前言 最近在做一个工作需要用到PICO4 Enterprise VR头盔里的眼动追踪功能&#xff0c;但是遇到了如下问题&#xff1a; 在Unity里面没法串流调试眼动追踪功能&#xff0c;根本获取不到Device&#xff0c;只能将整个场景build成APK&#xff0c;安装到头盔里&#xff0c;才能在…

【Python语言初识(五)】

一、文件和异常 在Python中实现文件的读写操作其实非常简单&#xff0c;通过Python内置的open函数&#xff0c;我们可以指定文件名、操作模式、编码信息等来获得操作文件的对象&#xff0c;接下来就可以对文件进行读写操作了。这里所说的操作模式是指要打开什么样的文件&#…

泛型(Java)

1.泛型&#xff1a; 将数据类型作为参数进行传递。(传递的数据类型必须是引用数据类型) 本质是参数化类型。 泛型集合&#xff1a;可以约束集合内的元素类型 典型泛型集合ArrayList<E>、HashMap<K,V> <E>、<K,V>表示该泛型集合中的元素类型泛型集合中的…

计算机视觉学习路线

计算机视觉&#xff08;Computer Vision&#xff09;是计算机科学的一个重要分支&#xff0c;旨在使计算机能够理解和解释视觉数据。以下是一个详细的计算机视觉学习路线&#xff0c;帮你系统地掌握这个领域所需的知识和技能。 1. 基础数学和编程 在深入学习计算机视觉之前&…

数据结构之——单循环链表和双向循环链表

一、单循环链表的奥秘 单循环链表是一种特殊的链表结构&#xff0c;它在数据结构领域中具有重要的地位。其独特的循环特性使得它在某些特定的应用场景中表现出强大的优势。 &#xff08;一&#xff09;结构与初始化 单循环链表的结构由节点组成&#xff0c;每个节点包含数据域…

343.整数拆分

刷题刷题找工作&#xff01; 题目链接 DP入门之整数拆分&#xff01; 题目&#xff1a; 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 自己的思路 。。…

引入Scrum激发研发体系活力

引言 在当今快速变化的技术环境中&#xff0c;IT企业面临着持续的市场压力和竞争&#xff0c;传统的瀑布式开发模式已经难以满足现代企业的需要。瀑布模型过于僵化&#xff0c;缺乏灵活性&#xff0c;导致项目经常延期&#xff0c;成本增加&#xff0c;最终可能无法达到预期效果…

bert系列模型区别(bert-base-cased/bert-base-uncased/bert-base-chinese)

文章目录 BERT模型介绍bert-base-casedbert-base-uncasedbert-base-chineseBERT-BILSTM-CRF模型介绍模型下载地址BERT模型介绍 BERT(Bidirectional Encoder Representations from Transformers)是一种预训练的语言模型,由Google开发并于2018年发布。BERT的目标是通过将大量…

【Qualcomm】高通SNPE框架的使用 | 原始模型转换为量化的DLC文件 | 在Android的DSP端运行模型

目录 ① 激活snpe环境 ② 设置环境变量 ③ 模型转换 ④ run 首先&#xff0c;默认SNPE工具已经下载并且Setup相关工作均已完成。同时&#xff0c;拥有原始模型文件&#xff0c;本文使用的模型文件为SNPE 框架示例的inception_v3_2016_08_28_frozen.pb文件。image_file_list…

数据集-目标检测系列-口罩检测数据集 mask>> DataBall

数据集-目标检测系列-口罩检测数据集 mask>> DataBall 数据集-目标检测系列-口罩检测数据集 mask 数据量&#xff1a;1W DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;享有百种数据集&#xff0c;持续增加中。 数据项目地址&#xff1a; gitcode: https…

【Python报错已解决】TypeError: list indices must be integers or slices, not str

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

Linux中通过cgroups限制进程的资源

文章目录 1. 安装和配置cgroups 2. 创建cgroup 3. 设置资源限制 1&#xff09;CPU限制 2&#xff09;内存限制 4. 将Java进程加入到cgroup 5. 监控cgroup 在Linux系统中&#xff0c;cgroups&#xff08;Control Groups&#xff09;是一种可以对一组进程进行细粒度资源控…

打造同城O2O平台:外卖跑腿APP的架构与功能设计详解

今天&#xff0c;小编将于大家共同讨论外卖跑腿APP的架构设计及其核心功能&#xff0c;旨在为开发者提供一份详尽的参考。 一、外卖跑腿APP的架构设计 1.整体架构概述 通常包括前端、后端和数据库。 2.前端设计 用户端提供直观的界面&#xff0c;方便用户下单、查询订单状态…

初学51单片机之I2C总线与E2PROM

首先先推荐B站的I2C相关的视频I2C入门第一节-I2C的基本工作原理_哔哩哔哩_bilibili 看完视频估计就大概知道怎么操作I2C了&#xff0c;他的LCD1602讲的也很不错&#xff0c;把数据建立tsp和数据保持thd&#xff0c;比喻成拍照时候的摆pose和按快门两个过程&#xff0c;感觉还是…

C语言实现归并排序(Merge Sort)

目录 一、递归实现归并排序 1. 归并排序的基本步骤 2.动图演示 3.基本思路 4.代码 二、非递归实现 1.部分代码 2.代码分析 修正后代码&#xff1a; 归并过程打印 性能分析 复杂度分析 归并排序是一种高效的排序算法&#xff0c;采用分治法&#xff08;Divide and Con…

华为仓颉语言入门(6):if条件表达式

解锁Python编程的无限可能&#xff1a;《奇妙的Python》带你漫游代码世界 仓颉语言中的 if 表达式用于根据条件的值来决定是否执行相关代码逻辑。if 表达式有三种形式&#xff1a;单分支的 if 表达式、双分支的 if 表达式和嵌套的 if 表达式。 单分支的 if 表达式 单分支的 …

javase复习day35反射

反射 获取class对象的方法 public class Demo1 {public static void main(String[] args) throws ClassNotFoundException {//获取反射的三种方式//第一种 Class.forName(全类名)//用法&#xff1a;最为常用Class<?> clazz1 Class.forName("Reflection.Student&q…

程序员如何以最快的方式提升自己?分享4个有效方法!

作家周国平说&#xff1a;人与人之间最重要的区别&#xff0c;不在物质的贫富和社会方面的境遇&#xff0c;是内在的素质和层次&#xff0c;把人分出了伟大与渺小、优秀与平庸。有的人醉心于三五成群的消遣&#xff0c;有的人专注于一步一脚印的努力&#xff0c;人和人之间的差…

docker修改默认存储路径和网段

在安装完成 Docker 后&#xff0c;可以修改 Docker 的数据目录和默认网段(172.17.0.0/16)&#xff0c;以防止与其他系统或应用的网络配置冲突。以下是详细步骤&#xff1a; 停止 Docker 服务&#xff1a; sudo systemctl stop docker 修改 Docker 配置文件&#xff1a; 编辑…

Shiro-550—漏洞分析(CVE-2016-4437)

文章目录 漏洞原理源码分析加密过程解密过程 漏洞复现 漏洞原理 Shiro-550(CVE-2016-4437)反序列化漏洞 在调试cookie加密过程的时候发现开发者将AES用来加密的密钥硬编码了&#xff0c;并且所以导致我们拿到密钥后可以精心构造恶意payload替换cookie&#xff0c;然后让后台最…