python--tkinter04

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()

猜你喜欢

转载自blog.csdn.net/qq_31307013/article/details/79834098