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学习的主要内容,如果未能解决你的问题,请参考以下文章

python-tkinter学习

python-tkinter学习

python-tkinter学习

python-tkinter学习

python-tkinter学习

python-tkinter学习