Python中的tkinter库简单案例详解
TKinter
Python的GUI库非常多,之所以选择Tkinter,一是最为简单,二是自带库,不需下载安装,随时使用,跨平台兼容性非常好,三则是从需求出发的,Python在实际应用中极少用于开发复杂的桌面应用,毕竟,Python的各种GUI工具包都一般得很,不具备优势。案例一LabelButton标签和按钮importtkinterastkwindowtk。Tk()实例化Tkwindow。title(muywindow)设置标题window。geometry(200x100)设置窗口的大小var1tk。StringVar()定义tk变量l1tk。Label(window,textvariablevar1,bggreen,font(Arial,12),width15,height2)设置标签,内容显示为var1变量l1。pack()摆放这个标签hitme1Falsedefhitme():globalhitme1ifnothitme1:hitme1Truevar1。set(thisistk)给变量赋值else:hitme1Falsevar1。set(thisistk,too)b1tk。Button(window,texthitme,width15,height2,commandhitme)点击按钮,运行hitme这个函数b1。pack()window。mainloop()显示窗口案例二EntryText输入和文本框importtkinterastkwindowtk。Tk()实例化Tkwindow。title(muywindow)设置标题window。geometry(200x150)设置窗口的大小etk。Entry(window,showNone)如果输入密码的话,showe。pack()definsertpoint():vare。get()得到文本输入框的值t。insert(insert,var)文本放到光标位置definsertend():vare。get()t。insert(end,var)将文本放到文本框的末尾t。insert(1。1,var)将文本放到第一行第一列b1tk。Button(window,textinsertpoint,width15,height2,commandinsertpoint)。pack()定义一个按钮,显示在光标位置插入文本b2tk。Button(window,textinsertend,width15,height2,commandinsertend)。pack()在末尾出插入ttk。Text(window,height2,width15)t。pack()注意不能一行写完,pack要写在下一行window。mainloop()显示窗口案例三Listbox部件importtkinterastkwindowtk。Tk()实例化Tkwindow。title(muywindow)设置标题window。geometry(200x150)设置窗口的大小var1tk。StringVar()ltk。Label(window,bgyellow,width4,textvariablevar1)l。pack()defprintselection():varlb。get(lb。curselection())得到鼠标点击的内容var1。set(var)将值赋值给var1b1tk。Button(window,textinsertpoint,width15,height2,commandprintselection)。pack()定义一个按钮,显示在光标位置插入文本var2tk。StringVar()存储可迭代对象的值var2。set((1,2,3,4))列表也可,设置初始值lbtk。Listbox(window,listvariablevar2)listitem〔1,2,11,54〕foriinlistitem:lb。insert(end,i)向列表框中插入值lb。delete(1)删除下标索引为2的值lb。pack()window。mainloop()显示窗口案例四Radiobutton选择按钮importtkinterastkwindowtk。Tk()实例化Tkwindow。title(muywindow)设置标题window。geometry(200x150)设置窗口的大小var1tk。StringVar()ltk。Label(window,bgyellow,width15)l。pack()defprintselection():l。config(textfyouhaveselect{var1。get()})将text重新赋值rad1tk。Radiobutton(window,textselecta,variablevar1,valueA,commandprintselection)。pack()variablevar1,valueA的意思是,将var1赋值成Arad2tk。Radiobutton(window,textselectb,variablevar1,valueB,commandprintselection)。pack()rad3tk。Radiobutton(window,textselectc,variablevar1,valueC,commandprintselection)。pack()window。mainloop()显示窗口案例五Scale尺度importtkinterastkwindowtk。Tk()实例化Tkwindow。title(muywindow)设置标题window。geometry(200x150)设置窗口的大小ltk。Label(window,bgyellow,width15)l。pack()defprintselection(v):Scale调用函数,其有自动的传入值l。config(textfyouhaveselect{v})stk。Scale(window,labeltryme,from5,to11,orienttk。HORIZONTAL,length200,showvalue0,tickinterval3,resolution0。01,commandprintselection)label设置名字,fromto设置刻度,orient设置方向,length设置长度,showvalue展示的值,tickinterval刻度,resolution精度s。pack()window。mainloop()显示窗口案例六Checkbutton勾选项importtkinterastkwindowtk。Tk()实例化Tkwindow。title(muywindow)设置标题window。geometry(200x150)设置窗口的大小ltk。Label(window,bgyellow,width15,textempty)l。pack()defprintselection():Scale调用函数,其有自动的传入值if(var1。get()1)(var2。get()0):l。config(textilovepython)elif(var1。get()1)(var2。get()1):l。config(textiloveboth)elif(var1。get()0)(var2。get()1):l。config(textiloveC)else:l。config(textidontloveeither)var1tk。IntVar()var2tk。IntVar()cltk。Checkbutton(window,textPython,variablevar1,onvalue1,offvalue0,commandprintselection)选择var1的值为1,否则为0c2tk。Checkbutton(window,textC,variablevar2,onvalue1,offvalue0,commandprintselection)cl。pack()c2。pack()window。mainloop()显示窗口案例七Canvas画布importtkinterastkwindowtk。Tk()实例化Tkwindow。title(muywindow)设置标题window。geometry(200x200)设置窗口的大小canvastk。Canvas(window,bgblue,height100,width200)imagefiletk。PhotoImage(filerD:programmewebwebfileweb学习imagesimage01。jpg)注意,只能导入。gif的图片imagecanvas。createimage(0,0,anchornw,imageimagefile)。pack()锚点为左上角,西北方向x0,y0,x1,y120,50,80,80linecanvas。createline(x0,y0,x1,y1)画线ovalcanvas。createoval(x0,y0,x1,y1,fillred)绘制扇形arccanvas。createarc(x030,y030,x130,x130,y130,start0,extent180)扇形rectcanvas。createrectangle(100,30,10020,3020)绘制正方形canvas。pack()defmoveit():canvas。move(rect,0,2)移动正方形,使其往下走两个单位atk。Button(window,textmove,commandmoveit)。pack()window。mainloop()显示窗口案例八Menubar菜单importtkinterastkwindowtk。Tk()实例化Tkwindow。title(mywindow)设置标题window。geometry(200x200)设置窗口的大小count0ltk。Label(window,text,bgyellow)l。pack()defdojob():globalcountl。config(textfdo{str(count)})count1定义文件选项mbtk。Menu(window)filetk。Menu(mb,tearoff0)有没有分隔线mb。addcascade(labelFile,menufile)添加一个功能file。addcommand(labelNew,commanddojob)每一个选项都是一个功能,命令file。addcommand(labelOpen,commanddojob)file。addcommand(labelSave,commanddojob)smtk。Menu(file)在File里面继续添加命令file。addcascade(labelSubmit,menusm)sm。addcommand(labelNew,commanddojob)window。config(menumb)将菜单添加到window上面window。mainloop()显示窗口案例九Frame框架importtkinterastkwindowtk。Tk()实例化Tkwindow。title(mywindow)设置标题window。geometry(200x200)设置窗口的大小tk。Label(window,textonthewindow)。pack()添加框架fmtk。Frame(window)fm。pack()fm1tk。Frame(fm)fmrtk。Frame(fm)fm1。pack(sideleft)fmr。pack(sideright)tk。Label(fm1,textontheframe1)。pack()tk。Label(fmr,textontheframer)。pack()window。mainloop()显示窗口案例十messagebox弹窗importtkinterastkimporttkinter。messageboxwindowtk。Tk()实例化Tkwindow。title(mywindow)设置标题window。geometry(200x200)设置窗口的大小defhitme():tk。messagebox。showinfo(titlehi,messagehit)注意,要导入模块,还有showwarning,showerror,tkinter。messagebox。askokcancel(提示,要执行此操作吗)确定取消,返回值truefalsetkinter。messagebox。askquestion(提示,要执行此操作吗)是否,返回值yesnotkinter。messagebox。askyesno(提示,要执行此操作吗)是否,返回值truefalsetkinter。messagebox。askretrycancel(提示,要执行此操作吗)重试取消,返回值truefalse文件对话框importtkinter。filedialogatkinter。filedialog。asksaveasfilename()返回文件名print(a)atkinter。filedialog。asksaveasfile()会创建文件atkinter。filedialog。askopenfilename()返回文件名atkinter。filedialog。askopenfile()返回文件流对象atkinter。filedialog。askdirectory()返回目录名atkinter。filedialog。askopenfilenames()可以返回多个文件名atkinter。filedialog。askopenfiles()多个文件流对象tk。Button(window,texthitme,commandhitme)。pack()window。mainloop()显示窗口案例十一packgridplace放置importtkinterastkwindowtk。Tk()实例化Tkwindow。title(mywindow)设置标题window。geometry(200x200)设置窗口的大小tk。Label(window,textpack)。pack(sidetop)tk。Label(window,textpack)。pack(sidebottom)tk。Label(window,textpack)。pack(sideleft)tk。Label(window,textpack)。pack(sideright)foriinrange(4):行forjinrange(3):列tk。Label(window,textgrid)。grid(rowi,columnj,padx10,pady10)以方格的形式放置tk。Label(window,textplace)。place(x100,y100,anchornw)点的形式window。mainloop()显示窗口登录窗口importtkinterastkimporttkinter。messageboxwindowtk。Tk()实例化Tkwindow。title(login)设置标题window。geometry(450x300)设置窗口的大小userinfo〔{name:admin,pwd:1},{name:user,pwd:1}〕存储账号信息定义函数deflogin():userinfoname〔i〔name〕foriinuserinfo〕userinfopwd〔i〔pwd〕foriinuserinfo〕usernamevarusername。get()userpwdvarpwd。get()ifusernameinuserinfoname:ifuserpwduserinfopwd〔userinfoname。index(username)〕:tk。messagebox。showinfo(title欢迎回来,messageHowareyou)else:tk。messagebox。showerror(messagepwderror)else:answertk。messagebox。askquestion(titlewarn,message您还没有账号,是否需要注册?)ifanswer:sign()defsign():defstore():newpwd1newpwd。get()newusername1newusername。get()userinfo。append({name:newusername1,pwd:newpwd1})tk。messagebox。showinfo(message注册成功)windowsign。destroy()关闭窗口defclose():windowsign。destroy()windowsigntk。Toplevel(window)窗口上的窗口windowsign。geometry(350x200)windowsign。title(Signupwindow)usertk。Label(windowsign,textName:)。place(x60,y60)newusernametk。StringVar()注意要使用。get()得到值newusername。set(exampepython。com)默认值tk。Entry(windowsign,textvariablenewusername)。place(x90,y60)输入用户名pwdtk。Label(windowsign,textPwd:)。place(x60,y100)newpwdtk。StringVar()tk。Entry(windowsign,textvariablenewpwd,show)。place(x90,y100)输入密码确认按钮tk。Button(windowsign,text确认,commandstore)。place(x100,y140)取消按钮tk。Button(windowsign,text取消,commandclose)。place(x170,y140)ifnamemain:tk。Label(window,textUserName:)。place(x50,y50)varusernametk。StringVar()注意要使用。get()得到值varusername。set(exampepython。com)默认值tk。Entry(window,textvariablevarusername)。place(x130,y50)输入用户名tk。Label(window,textPassword:)。place(x50,y90)varpwdtk。StringVar()tk。Entry(window,textvariablevarpwd,show)。place(x130,y90)输入密码loginButtontk。Button(window,textLogin,commandlogin)。place(x130,y130)登录按钮signButtontk。Button(window,textSignUp,commandsign)。place(x200,y130)注册按钮window。mainloop()显示窗口
元旦联欢会作文550字上周的星期三,我们班举行了元旦联欢会,我们大家都非常的高兴,因为,我们要告别20xx年,迎接新的一年,也就是20xx年,我们又长大了一岁,我们又离要告别最亲爱的赵老师和聂老师近……
中学生关于学会感恩的优秀作文900字学会感恩,是温暖的阳光,照到哪里哪里亮,学会感恩,是感情的黏合剂。以下是小编为您推荐中学生关于学会感恩的优秀作文900字,欢迎阅读。篇一:在花季中学会感恩那些有笑、……
夏夜,听风去七月,绿色不减,温暖不变,清凉的月光跨过篱笆小园,从我的窗台上路过。这样的七月,宁静适宜,芳香清远,适合一个人把所有的情绪交给文字,交给知心的笔墨,只安静不语。同样的,适……
我眼中的孙悟空作文500字《西游记》是我国古代一部杰出的长篇神话小说,书中的人物个个活灵活现,极大地激发了我们的想象力。孙悟空,就是其中一个家喻户晓的人物,他手持金箍棒,武艺高强,还会七十二变helli……
六年级日记端午节日记(六)百里不同风,千里不同俗。中国有四大传统节日:春节、清明节、端午节、中秋节四个。我今天就要和大家说说其中的第三个端午节。端午节又可以叫端阳节。据说是来纪念屈原的,其实在屈原……
越懂数字环境越怕!北大报告半数网民因算法束缚想逃离网络12月28日,北京大学互联网发展研究中心联合360集团发布《中国公众大安全感知报告》(下称《报告》)。《报告》显示,公众在数字环境中的安全感最弱,近四成公众担心网络中的谣……
马斯克脑机接口与老人脑部健康的关系养老知识大赛伊隆马斯克无疑是当今世界最具想象力与执行力的科技狂人,在登陆火星的梦想指引之下,马斯克着手创立及经营着Tesla特斯拉(电动车)、SpaceX(火箭、星链)、……
我们一家演话剧记叙文600字这次,我们的作文是全家演一个话剧。这让我犯愁了。怎么演好呢?叫谁演才好呢?我琢磨着叫上妈妈和爸爸,他们会拒绝我吗?不管了,我一定要想出办法,让他们同意才行。晚饭时,我尝试……
没毕业,先上岗!这种学生太抢手,相关职位增长量近50!千亿市从2018年教育部设立人工智能专业之后,我国累计已有近百家高校开始培养人工智能方向的学生。随着人才需求的不断扩大,在这个暑假,不少在校大学生已经提前进入企业,开始了在企业的培训……
七夕就要到了,用iPhone12做情侣手机,这两个颜色绝配哈喽大家好,我是你们的老朋友小馨,每天都会给大家更新我的原创内容,时下有哪些机型适合做情侣手机呢?给大家推荐这款iPhone12:女生用绿紫色男生用墨蓝色。对于喜欢iOS……
描写爱的谎言作文导语:说谎的孩子不一定都是匹诺曹。下面是小编整理的一些关于谎言的优秀作文,欢迎查阅,谢谢!第1篇:善良的谎言说谎的孩子不一定都是匹诺曹。因为,童年的谎言多半是一分的天真、……
中视频赛道,终点在哪?图片来源unsplash文丨犀牛娱乐,作者丨胖部,编辑丨朴芳在过去一年里,中视频赛道格外热闹。此前西瓜视频公布了中视频伙伴计划的成绩,6月上线至今,6300位……
2020年关于保卫祖国作文篇一:《上下五千年》这本书可是家喻户晓,它是我们中华民族五千年来日新月异变化的见证。书里记载了许多着名故事,同时也诞生出了一位位保卫国家而立下赫赫战功的英雄豪杰,有精忠报……
数字技术赋予乡村振兴新动能工业品下乡,在家门口签收新型生产工具;渔场信息上云,海上养殖有了新方式;电商快速发展,农产品源源不断出村进城多地着力探索数字乡村建设,对采购、生产、销售等环节进行数字化改造,培……
梦的边缘花开五年级优秀作文梦的边缘花开彼岸花开,我们走散儿时的回忆唤醒我们纯真的年代不会孤单,不再徘徊美丽的流星伴随着我们走过风雨年代是否感到一丝依恋与怀念我是个寂寞……
爱是永恒作文400字爱是永恒作文400字怎么写?相信很多人都想知道吧?以下是小编为您整理的爱是永恒作文400字相关资料,欢迎阅读!爱是永恒作文400字1爱,是黑夜中的一盏明灯;爱,是绝境中的……
小米一季度亏损5。3亿元澎湃财讯5月19日,小米集团公布2022年第一季度业绩。第一季度总营收734亿元,预估725。2亿元,同比下滑4。6;亏损5。3亿元,去年同期盈利77。89亿元,调整后净……
周延礼5G为金融保险高质量发展提供新机遇5G如何赋能金融保险业?近日,2022世界电信日大会主题活动5G智慧金融论坛以线上方式举行。全国政协经济委员会委员,原中国保监会党委副书记、副主席周延礼发表5G金融保险高质量发……
港科大研水凝胶配方杀灭奥密克戎已在公屋试用(抗击新冠肺炎)港科大研水凝胶配方杀灭奥密克戎已在公屋试用中新社香港5月19日电(记者韩星童)香港科技大学(科大)19日公布,科大研究团队近日研发出一种新型水凝胶气味控制……
难忘的一次教训作文450字左右每个人都会犯错,我也是一样,常常大小错误不断,不过我都会诚实的爸爸妈妈反省,我下次会改进。书上说:一个人做错事没关系,最重要的是要会自我反省。昨天妈妈带我和弟弟去大超市买……
让说到让,我不禁联想到以前看到的一则新闻:这是一道小学的语文阅读题,选文是孔融让梨的故事。其中,有这样一道题:如果你是孔融,你会怎么做?一位上海市的小朋友回答说:我不会让梨……
满园玉兰香作文200字正是玉兰花盛放的季节。楼下的三楼高的玉兰树飘飘荡荡,密密麻麻的花蕊仿佛一夜之间都全部绽放,满园香气,坐在家里都仿佛能闻到楼下飘上来的清香,每天早上买完菜,就会忍不住地在树下踮起……
5。5G关键期来了!方略已定,起而行之移动通信产业的技术演进,十年一代。30年间,从2G3G4G发展到现在的5G,带来的不仅是网络传输速率的巨幅提升,随着5G技术在生产、生活领域实现融合创新,为千行百业数智化转型提……
为什么每到一家新公司干了两三年或者干久了,都有一种干不下去了从事人力工作十几年,我可以告诉你,这绝对不是你仅有的感受,这几乎是所有打工人必经的心路历程。在我们人力资源领域,早就对不同时期的离职,做了总结概括。一、1个月离职,工作实……