python-tkinter学习
Posted Python_Heaven
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-tkinter学习相关的知识,希望对你有一定的参考价值。
9.Menubar菜单
制作菜单栏,file,edit
tk.Menu() 制作一个菜单bar,
然后再tk.Menu,增加filemenu,
menubar.add_cascade增加选项
filemenu.add_command增加
import tkinter as tk
window = tk.Tk()
window.title("my window")
window.geometry("200x200")
l = tk.Label(window, text='', bg='yellow')
l.pack()
counter = 0
def do_job():
global counter
l.config(text='do ' + str(counter))
counter += 1
menubar = tk.Menu(window)
filemenu = tk.Menu(menubar, tearoff=0) # tearoff能不能被分开
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)
editmenu = tk.Menu(menubar, tearoff=0) # tearoff能不能被分开
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)
submenu = tk.Menu(filemenu)
filemenu.add_cascade(label='Import', menu=submenu, underline=0)
submenu.add_command(label='Submenu1', command=do_job)
window.config(menu=menubar) # 改变window参数,增加一个菜单栏。
window.mainloop()
运行如图:
10.Frame框架
底层的框架,
先在window加了一个label,
然后再window加了一个frame,
tk.Frame()
import tkinter as tk
window = tk.Tk()
window.title("my window")
window.geometry("200x200")
l = tk.Label(window, text='on the window', bg='yellow')
l.pack()
frm = tk.Frame(window)
frm.pack()
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='yellow').pack()
window.mainloop()
运行如图:
11.messagebox弹窗
新版本需要from tkinter import messagebox,导入一下
使用时直接messagebox.showinfor(),可以传入title,和详细信息。
import tkinter as tk
from tkinter import messagebox
window = tk.Tk()
window.title("my window")
window.geometry("200x200")
def hit_me():
# messagebox.showinfo(title='Hi', message='hahahha')
# messagebox.showwarning(title='Hi', message='nononon')
# messagebox.showerror(title='Hi', message='NO!,never')
# messagebox.askquestion(title='Hi', message='NO!,never') # 会返回 yes no
messagebox.askyesno(title='Hi', message='NO!,never') # 会返回 True False
l = tk.Button(window, text='on the window', command=hit_me).pack()
window.mainloop()
运行如图:
showwarning的图标:
showerror图标:
messagebox.askquestion(title=‘Hi’, message=‘NO!,never’) # 会返回 yes no:
运行如图:
12.pack,grid,place放置位置
12.1 pack 上下左右的方位:
import tkinter as tk
window = tk.Tk()
window.title("my window")
window.geometry("200x200")
tk.Label(window, text=1).pack(side='top')
tk.Label(window, text=1).pack(side='bottom')
tk.Label(window, text=1).pack(side='left')
tk.Label(window, text=1).pack(side='right')
window.mainloop()
运行如图:
12.2 grid表格,展开的外部参数,内部的扩展,ipadx
import tkinter as tk
window = tk.Tk()
window.title("my window")
window.geometry("200x200")
for i in range(4):
for j in range(3):
tk.Label(window, text=1).grid(row=i,column=j,ipadx=10,ipady=10)
window.mainloop()
运行如图
12.3 place点
在某个坐标上放置,顶点坐标同
如下是将label,以左上角为0,0,在它的10,100位置上放一个label
import tkinter as tk
window = tk.Tk()
window.title("my window")
window.geometry("200x200")
tk.Label(window, text=1).place(x=10,y=100,anchor='nw') # 西北角,放一个1
window.mainloop()
运行如图:
以上是关于python-tkinter学习的主要内容,如果未能解决你的问题,请参考以下文章