1、canvas
import tkinter as tk window = tk.Tk() window.title("The window") window.geometry("400x300") canvas = tk.Canvas(window, bg='blue', height=100, width=200) #添加图片 #image_file = tk.PhotoImage(file='ins.gif') #image = canvas.create_image(10,10,anchor='nw',image=image_file) #创建直线 x0,y0,x1,y1 = 50,50,80,80 line = canvas.create_line(x0,y0,x1,y1) #创建一个圆 oval = canvas.create_oval(x0,y0,x1,y1,fill='red') #创建一个扇形 arc = canvas.create_arc(x0+30,y0+30,x1+30,y1+30,start=0,extent=180,fill='yellow') #创建一个长方形 rect = canvas.create_rectangle(100,30,100+20,30+20) canvas.pack() def moveit(): canvas.move(rect,0,8) b = tk.Button(window,text='move',command=moveit) b.pack() window.mainloop()
注:tkinter 只能打开*.gif 图片。如要打开其他图片,则添加其它库 如pillow 或 pil
2、菜单栏 Menu
import tkinter as tk window = tk.Tk() window.title("The window") window.geometry("400x300") l = tk.Label(window,text='',bg='red') l.pack() counter = 0 def do_job(): global counter l.config(text='do ' + str(counter)) counter += 1 #创建一个菜单栏 menubar = tk.Menu(window) #在menubar中创建filemenu菜单单元 filemenu = tk.Menu(menubar,tearoff=0) #将上面定义的空菜单命名为file,放在菜单栏中 menubar.add_cascade(label='File',menu=filemenu) filemenu.add_command(label='New',command=do_job) filemenu.add_command(label='Open',command=do_job) filemenu.add_command(label='Save',command=do_job) filemenu.add_separator() filemenu.add_command(label='Exit',command=window.quit) window.config(menu=menubar) editmenu = tk.Menu(menubar,tearoff=0) menubar.add_cascade(label='Edit',menu=editmenu) editmenu.add_command(label='Cut',command=do_job) editmenu.add_command(label='Copy',command=do_job) editmenu.add_command(label='Paste',command=do_job) #和上面定义菜单一样,不过此处在file上创建一个空菜单 submenu = tk.Menu(filemenu) filemenu.add_cascade(label='Import',menu=submenu,underline=0) submenu.add_command(label='Submenu1',command=do_job) window.mainloop()
3、Frame
import tkinter as tk window = tk.Tk() window.title("The window") window.geometry("400x300") tk.Label(window,text='On the window',bg='red').pack() #在window上创建一个frame frm = tk.Frame(window) frm.pack() #在frm上创建两个frame frm_l = tk.Frame(frm) frm_r = tk.Frame(frm) frm_l.pack(side='left') frm_r.pack(side='right') tk.Label(frm_l,text='on the frm_l1',bg='yellow').pack() tk.Label(frm_l, text='on the frm_l2',bg='yellow').pack() tk.Label(frm_r, text='on the frm_r1',bg='green').pack() window.mainloop()
4、Messager
import tkinter as tk import tkinter.messagebox window = tk.Tk() window.title('my window') window.geometry('200x200') #创建消息弹窗 def hit_me(): tk.messagebox.showinfo(title='Weclome to tkinter', message='Weclome') # return 'ok' #tk.messagebox.showwarning(title='Hi', message='nononono') # return 'ok' #tk.messagebox.showerror(title='Hi', message='No!! never') # return 'ok' #print(tk.messagebox.askquestion(title='Hi', message='hahahaha')) # return 'yes' , 'no' #print(tk.messagebox.askyesno(title='Hi', message='hahahaha')) # return True, False #print(tk.messagebox.asktrycancel(title='Hi', message='hahahaha')) # return True, False #print(tk.messagebox.askokcancel(title='Hi', message='hahahaha')) # return True, False #print(tk.messagebox.askyesnocancel(title="Hi", message="haha")) # return, True, False, None tk.Button(window, text='hit me', command=hit_me).pack() window.mainloop()