学习视频https://www.bilibili.com/video/BV1jW411Y7dL/?spm_id_from333.337.search-card.all.clickvd_source81584e9639e054943cf0f47509a8b4da1、标签和按钮例子#标签和按钮的学习 import tkinter as tk on_hit False def hit_me(): #定义一个函数 global on_hit if on_hitFalse: on_hit True var1.set(you hit me) else: on_hitFalse var1.set( ) window tk.Tk() window.title(my window) window.geometry(200x100) #用小写x var1 tk.StringVar()#定义变量 var1.set( ) labeltk.Label(window, textvariablevar1,bggreen, font(Arial,12),width15,height2) #长宽是字符多少个 object都是大写 label.pack()#放在上下左右 botton1tk.Button(window, texthit me,width15, height2,commandhit_me) botton1.pack() #运行 window.mainloop()#window会不断刷新循环2、输入框和文本框学习#输入框和文本框的学习 import tkinter as tk window tk.Tk() window.title(my window) window.geometry(200x200) def insert_point(): varentry1.get() text1.insert(insert,var) def insert_end(): varentry1.get() text1.insert(end,var) entry1tk.Entry(window,show*)#输入框 entry1.pack() botton1tk.Button(window,textinsert point,width15,height2, commandinsert_point) botton1.pack() button2tk.Button(window,textinsert end, commandinsert_end) button2.pack() text1tk.Text(window,height2) text1.pack() window.mainloop()3、列表学习#list学习 #输入框和文本框的学习 import tkinter as tk window tk.Tk() window.title(my window) window.geometry(200x200) def print_selection(): valuelistbox1.get(listbox1.curselection())#得到所选的值 var1.set(value) var1 tk.StringVar() label1tk.Label(window,bgyellow,width4,textvariablevar1) label1.pack() botton1tk.Button(window,textprint selection,width15,height2, commandprint_selection) botton1.pack() var2tk.StringVar() var2.set((11,22,33,44)) listbox1tk.Listbox(window,listvariablevar2) list_item[1,2,3,4] for item in list_item: listbox1.insert(end,item)#插入内容 listbox1.insert(1,first)#第一个位置插入字符 listbox1.insert(2,second) listbox1.delete(2) listbox1.pack() window.mainloop()4、点选学习#radiobutton 点选 import tkinter as tk window tk.Tk() window.title(my windows) window.geometry(200x200) var tk.StringVar() label1tk.Label(window,bgyellow,width20, textempty) label1.pack() def print_selection(): label1.config(textyou have select var.get()) r1tk.Radiobutton(window,textOption A, variablevar,valueA, commandprint_selection)#当选中时候会将value的值给variable r1.pack() r2tk.Radiobutton(window,textOption B, variablevar,valueB, commandprint_selection)#当选中时候会将value的值给variable r2.pack() r3tk.Radiobutton(window,textOption C, variablevar,valueC, commandprint_selection)#当选中时候会将value的值给variable r3.pack() window.mainloop()5、尺度条学习#使用尺度条 import tkinter as tk def print_selection(v): label1.config(textyou have selectdv) window tk.Tk() label1tk.Label(window,bggreen) label1.pack() stk.Scale(window,labeltry me,from_5,to11, orienttk.HORIZONTAL, #横 length200,#200 像素 showvalue1,#0不显示 tickinterval3,resolution0.01, commandprint_selection)#变量的单位长度 s.pack() window.mainloop()6、展示列表选择列表import tkinter as tk def print_selection(): varint1var1.get() varint2var2.get() if varint1 varint2: label1.config(textI love both) elif (varint11) (varint2 0): label1.config(textI love python) elif (varint21) (varint10): label1.config(textI love C) else: label1.config(textI do not love either) window tk.Tk() label1tk.Label(window,bggreen) label1.pack() var1tk.IntVar() var2tk.IntVar() c1tk.Checkbutton(window,textpython, variablevar1,onvalue1,offvalue0, commandprint_selection)#选定赋值为1,不选赋值为0 c2tk.Checkbutton(window,textc, variablevar2,onvalue1,offvalue0, commandprint_selection)#选定赋值为1,不选赋值为0 c1.pack() c2.pack() window.mainloop()7、画布#画布的制作 import tkinter as tk def moveit(): #pass canvas.move(rect,0,2)#每次点击按钮正方形向下移动2 windowtk.Tk() window.title(my window) window.geometry(200x200) canvas tk.Canvas(window,bgblue, height100,width200 # 像素单位 ) image_filetk.PhotoImage(file2026.png) #画布上放置图 image canvas.create_image(12,0,anchornw,imageimage_file) #anchor 图像已哪个点计算定位点 可以选择东西南北和45度位置 #画布上画图案 x0,y0,x1,y150,50,80,80 linecanvas.create_line(x0,y0,x1,y1) ovalcanvas.create_oval(x0,y0,x1,y1,fillred)#红色的圆形 arccanvas.create_arc(x030,y030,x130,y130,start0,extent180)#扇形0到180度 rectcanvas.create_rectangle(100,30,120,50)#正方形 canvas.pack() button1tk.Button(window,textmove, commandmoveit).pack() window.mainloop()8、manubar#manubar import tkinter as tk counter0 def do_job(): global counter l.config(textdostr(counter)) countercounter1 windowtk.Tk() window.title(my window) window.geometry(200x200) ltk.Label(window,text,bgyellow) l.pack() menubar tk.Menu(window) filemenutk.Menu(menubar,tearoff0)#tearoff 是不是可以分开的选项 menubar.add_cascade(labelfile,menufilemenu)#将filemenu加到menu filemenu.add_command(labelNew,commanddo_job) filemenu.add_command(labelOpen,commanddo_job) filemenu.add_separator()#分割线 filemenu.add_command(labelExit,commandwindow.quit) submenutk.Menu(filemenu)#子menu放在filemenu下 filemenu.add_cascade(labelImport,menusubmenu,underline0) submenu.add_command(labelsubmenu1,commanddo_job) window.config(menumenubar) window.mainloop()9、frame 和messagebox#frame #有助于布局美观 # import tkinter as tk # windowtk.Tk() # window.title(my window) # window.geometry(200x200) # tk.Label(window,texton window).pack() # frm tk.Frame(window) # frm.pack() # frm_lefttk.Frame(window) # frm_left.pack(sideleft) # frm_righttk.Frame(window) # frm_right.pack(sideright) # tk.Label(frm_left,texton the frm_left).pack() # tk.Label(frm_left,texton the frm_left).pack() # tk.Label(frm_right,texton the right frame).pack() # window.mainloop() # import tkinter as tk from tkinter import messagebox def click(): messagebox.showinfo(titleHi,messagehahaha) messagebox.showwarning(titleHi,messagenonono) messagebox.showerror(titleerror,messageerror) print(messagebox.askquestion(titleHi,messageyes or no)) windowtk.Tk() window.title(my window) window.geometry(200x200) tk.Button(window,textclick me,commandclick).pack() window.mainloop()10、综合例子#如何放置 import tkinter as tk from tkinter import messagebox import pickle def use_login(): #pass usrnamevar_usrname.get() passportvar_password.get() try: with open(usrs_info.pickle,rb) as usr_file: usrs_infopickle.load(usr_file) except FileNotFoundError: with open(usrs_info.pickle,wb) as usr_file: usrs_info{admin:admin} pickle.dump(usrs_info,usr_file) if usrname in usrs_info: if passport usrs_info[usrname]: messagebox.showinfo(titlewelcome,message How are you!!usrname) else: messagebox.showerror(message Error,you password is wrong) else: is_sign_upmessagebox.askyesno(welcome, you have not sign up yet. \ Sign up?) if is_sign_up: usr_signin() def usr_signin(): def confirm_pwd_signup(): npnew_name.get() npwdnew_pwd.get() npwdcnew_pwd_confirm.get() with open(usrs_info.pickle,rb) as usr_file: exist_usr_info pickle.load(usr_file) if npwd!npwdc: messagebox.showerror(error,password and confirm password must be the same) elif np in exist_usr_info: messagebox.showerror(error,the usr has exist) else: exist_usr_info[np]npwd with open(usrs_info.pickle,wb) as usr_file: pickle.dump(exist_usr_info,usr_file) messagebox.showinfo(welcome,you have sign up success) windows_signup.destroy() windows_signuptk.Toplevel(window) windows_signup.title(sign up window)#窗口上弹出的窗口 windows_signup.geometry(300x300) #账户名标签和输入框 new_nametk.StringVar() new_name.set(examplepython.com) tk.Label(windows_signup,textUser name:).place(x10,y10) entry_usr_nametk.Entry(windows_signup,textvariablenew_name) entry_usr_name.place(x150,y10) #密码输入框和标签 new_pwdtk.StringVar() tk.Label(windows_signup,textpassword).place(x10,y50) entry_usr_pwdtk.Entry(windows_signup,textvariablenew_pwd) entry_usr_pwd.place(x150,y50) #密码确认框和标签 new_pwd_confirmtk.StringVar() tk.Label(windows_signup,textconfirm password).place(x10,y90) entry_usr_pwd_comfirmtk.Entry(windows_signup, textvariablenew_pwd_confirm, show*) entry_usr_pwd_comfirm.place(x150,y90) #确认注册的按钮 btn_comfirm_sign_uptk.Button(windows_signup,textyes,commandconfirm_pwd_signup) btn_comfirm_sign_up.place(x150,y130) window tk.Tk() window.title(my window) window.geometry(400x400) # tk.Label(text1).place(x0,y11) # tk.Label(text2).pack(sideleft) # 作简单的窗口 canvas tk.Canvas(window, height200,width200) imagefile tk.PhotoImage(file2026.png) image canvas.create_image(0,0,anchornw,imageimagefile) canvas.pack(sidetop) tk.Label(window,textuser name).place(x50,y150) tk.Label(window,textpassword).place(x50,y190) var_usrnametk.StringVar() var_usrname.set(EXAMPLEPYTHON.COM) var_passwordtk.StringVar() entry_usr_nametk.Entry(window,textvariablevar_usrname) entry_usr_name.place(x160,y150) entrypasstk.Entry(window,textvariablevar_password,show*) entrypass.place(x160,y190) btn_logintk.Button(window,textLogin,commanduse_login) btn_login.place(x170,y230) btn_sign_uptk.Button(window,textsign up,commandusr_signin) btn_sign_up.place(x270,y230) window.mainloop()