|
✨✨欢迎大家来到景天科技苑✨✨🎈🎈养成好习惯,先赞后看哦~🎈🎈🏆作者简介:景天科技苑🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi,flask等框架,linux,shell脚本等实操经验,网站搭建,数据库等分享。所属的专栏:python图形化GUI编程tkinter精讲景天的主页:景天科技苑文章目录1.Button组件细讲1.Button应用实战2.Entry单行文本框1.Entry中的参数2.Entry中的方法3.Entry应用实战4.StringVar变量详细解析1.Button组件细讲Button(按钮)用来执行用户的单击操作。Button可以包含文本,也可以包含图像。按钮被单击后会自动调用对应事件绑定的方法。具体用法可以参考文档https://insolor.github.io/effbot-tkinterbook-archive/点进去查看Button用法Button组件的参数详解1.Button应用实战【示例】Button按钮用法(文字、图片、事件)"""测试Button组件的基本用法,使用面向对象的方式"""fromtkinterimport*fromtkinterimportmessageboxclassApplication(Frame):def__init__(self,master=None):super().__init__(master)#super()代表的是父类的定义,而不是父类对象self.master=masterself.pack()self.createWidget()defcreateWidget(self):"""创建组件"""#anchor,如果控件的空间大于文本所需的空间,此参数可控制文本的位置,默认值为'center',可选项有'e','s','w','n','nw','ne','sw','se','center',分别代表右、下、左、上、左上、右上、左下、右下、中间(类似于东南西北)self.btn01=Button(root,text="登录",width=6,height=3,anchor=NE,command=self.login)self.btn01.pack()globalphotophoto=PhotoImage(file="imgs/数据分析.png")self.btn02=Button(root,image=photo,width=500,height=100,command=self.login)self.btn02.pack()#self.btn02.config(state="disabled")#设置按钮为禁用,图片也会显示为灰色deflogin(self):messagebox.showinfo("景天科技苑学习系统","登录成功!欢迎开始学习!")if__name__=='__main__':root=Tk()root.geometry("500x360+200+300")app=Application(master=root)root.mainloop()12345678910111213141516171819202122232425262728293031323334353637运行结果2.Entry单行文本框Entry用来接收一行字符串的控件。如果用户输入的文字长度长于Entry控件的宽度时,文字会自动向后滚动。如果想输入多行文本,需要使用Text控件。1.Entry中的参数Entry(master=None,**options)(class)master–父组件**options–组件选项,下方表格详细列举了各个选项的具体含义和用法:2.Entry中的方法delete(first,last=None)–删除参数first到last范围内(包含first和last)的所有内容–如果忽略last参数,表示删除first参数指定的选项–使用delete(0,END)实现删除输入框的所有内容get()–获得当前输入框的内容icursor(index)–将光标移动到index参数指定的位置–这同时也会设置INSERT的值index(index)–返回与index参数相应的选项的序号(例如e.index(END))insert(index,text)–将text参数的内容插入到index参数指定的位置–使用insert(INSERT,text)将text参数指定的字符串插入到光标的位置–使用insert(END,text)将text参数指定的字符串插入到输入框的末尾scan_dragto(x)–见下方scan_mark(x)scan_mark(x)–使用这种方式来实现输入框内容的滚动–需要将鼠标按下事件绑定到scan_mark(x)方法(x是鼠标当前的水平位置),然后再将事件绑定到scan_dragto(x)方法(x是鼠标当前的水平位置),就可以实现输入框在当前位置和sacn_mack(x)指定位置之间的水平滚动select_adjust(index)–与selection_adjust(index)相同,见下方解释select_clear()–与selection_clear()相同,见下方解释select_from(index)–与selection_from(index)相同,见下方解释select_present()–与selection_present()相同,见下方解释select_range(start,end)–与selection_range(start,end)相同,见下方解释select_to(index)–与selection_to(index)相同,见下方解释selection_adjust(index)–该方法是为了确保输入框中选中的范围包含index参数所指定的字符–如果选中的范围已经包含了该字符,那么什么事情也不会发生–如果选中的范围不包含该字符,那么会从光标的位置将选中的范围扩展至该字符selection_clear()–取消选中状态selection_from(index)–开始一个新的选中范围–会设置ANCHOR的值selection_present()–返回输入框是否有处于选中状态的文本–如果有则返回True,否则返回Falseselection_range(start,end)–设置选中范围–start参数必须必end参数小–使用selection_range(0,END)选中整个输入框的所有内容selection_to(index)–选中ANCHOR到index参数的间的所有内容xview(index)–该方法用于确保给定的index参数所指定的字符可见–如有必要,会滚动输入框的内容xview_moveto(fraction)–根据fraction参数给定的比率调整输入框内容的可见范围–fraction参数的范围是0.0~1.0,0.0表示输入框的开始位置,1.0表示输入框的结束位置xview_scroll(number,what)–根据给定的参数水平滚动输入框的可见范围–number参数指定滚动的数量,如果是负数则表示反向滚动–what参数指定滚动的单位,可以是UNITS或PAGES(UNITS表示一个字符单元,PAGES表示一页)3.Entry应用实战【示例】Entry单行文本框实现简单登录界面"""测试Entry组件的基本用法,使用面向对象的方式"""fromtkinterimport*fromtkinterimportmessageboxclassApplication(Frame):def__init__(self,master=None):super().__init__(master)#super()代表的是父类的定义,而不是父类对象self.master=masterself.pack()self.createWidget()defcreateWidget(self):"""创建登录界面的组件"""self.label01=Label(self,text="用户名")self.label01.pack()#StringVar变量绑定到指定的组件。#StringVar变量的值发生变化,组件内容也变化;#组件内容发生变化,StringVar变量的值也发生变化。v1=StringVar()self.entry01=Entry(self,textvariable=v1)self.entry01.pack()#设置个默认值v1.set("admin")print(v1.get());print(self.entry01.get())#创建密码框self.label02=Label(self,text="密码")self.label02.pack()v2=StringVar()'''show1.设置输入框如何显示文本的内容2.如果该值非空,则输入框会显示指定字符串代替真正的内容3.将该选项设置为"*",则是密码输入框'''self.entry02=Entry(self,textvariable=v2,show="*")self.entry02.pack()#创建个按钮Button(self,text="登录",command=self.login).pack()deflogin(self):username=self.entry01.get()pwd=self.entry02.get()print("去数据库比对用户名和密码!")print("用户名:"+username)print("密码:"+pwd)ifusername=="jingtian"andpwd=="123456":messagebox.showinfo("景天科技苑学习系统","登录成功!欢迎开始学习!")else:messagebox.showinfo("景天科技苑学习系统","登录失败!用户名或密码错误!")if__name__=='__main__':root=Tk()root.geometry("400x130+200+300")app=Application(master=root)root.mainloop()123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566运行程序当我们输错,会提示输入错误输入正确的提示登录成功4.StringVar变量详细解析Stringvar是tkinter里面的类型,继承了Variable我们在pycharm中showDiagram可以查看常见的各种类型我们定义不同的数据类型的变量时,可以选择不同的类型可选类型有intVar(整形),DoubleVar(浮点型),BooleanVar(布尔型),StringVar(字符串)
|
|