1、tkinter窗口
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('1400x800')
window.resizable(width=False, height=False) #窗口不可改变大小
#window.state('zoomed') #Win系统窗口的最大化
#window.attributes('-zoomed', True) #Linux系统窗口的最大化
window.mainloop()
2、Label(标签)
w = Label(master, option=value,...)
master:框架的父容器
option:可选项,该标签可设置的属性
https://www.runoob.com/python/python-tk-label.html
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('1400x800')
l= tk.Label(window, text='....', bg='green', front=('Arial', 12), width=15, height=2)
l.pack()
l.config(text='~~~') #改变参数值
window.mainloop()
width、height表示标签框的大小
3、Button(按钮)
w = Button(master, option=value,...)
https://www.runoob.com/python/python-tk-button.html
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('1400x800')
l= tk.Label(window, text='....', bg='green', front=('Arial', 12), width=15, height=2)
l.pack()
def hit_me():
...
b= tk.Button(window, text='....', width=15, height=2,command=hit_me)
b.pack()
window.mainloop()
4、Entry和Text
w1 = Entry(master, option=value,...)
w2 = Text(master, option=value,...)
https://www.runoob.com/python/python-tkinter-entry.html
https://blog.csdn.net/qq_41556318/article/details/85112829
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('1400x800')
e = tk.Entry(window, show='*') #以*显示输入内容
e.pack()
t = tk.Text(window,height=2)
t.pack()
t.insert('end',e.get())
t.insert('insert',e.get()) #'insert'为光标指定的插入位置,也可指定某行某列
window.mainloop()
5、Listbox(列表控件)
w = Listbox(master, option=value, ... )
https://www.cnblogs.com/ronyjay/p/13267495.html
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('1400x800')
var = tk.StringVar()
var.set((11,22,33))
lb = tk.Listbox(window,listvariable=var)
lb.insert('end','first' ) #同上面的.insert
lb.detect('end')
lb.pack()
value = lb.get(lb.curselection()) #获得当前光标所指位置的值
window.mainloop()
5、Radiobutton(选择按钮)
w = Radiobutton(master, option=value, ... )
https://www.py.cn/manual/python-tkinter-radiobutton.html
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('1400x800')
def print_s():
...
var = tk.StringVar()
rb1 = tk.Radiobutton(window,text='Option A',variable=var,value='A',command=print_s) #var被赋值为A
rb1.pack()
rb2 = tk.Radiobutton(window,text='Option B',variable=var,value='B',command=print_s)
rb2.pack()
window.mainloop()
6、Scale(尺度)
w = Scale(master, option=value, ... )
http://www.ryxxff.com/15817.html
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('1400x800')
def print_s(v): #默认传入了一个值,scale标注的值
...
s = tk.Scale(window,label='...',from=5,to=11,orient=tk.HORIZONTAL,length=200,showvalue=0,tickinterval=3,resolution=0.01,command=print_s) #length表像素的长度
s.pack()
window.mainloop()
7、Checkbutton(勾选项)
可选多个值,Radiobutton为单选
w = Checkbutton(master, option=value, ... )
https://www.runoob.com/python/python-tk-checkbutton.html
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('1400x800')
def print_s():
...
var1 = tk.StringVar()
var2 = tk.StringVar()
cb1 = tk.Checkbutton(window,text='Option A',variable=var1,onvalue=1,offvalue=0,command=print_s) #onvalue和offvalue为给var1赋值
cb1.pack()
cb2 = tk.Checkbutton(window,text='Option B',variable=var2,onvalue=1,offvalue=0,command=print_s)
cb2.pack()
window.mainloop()
8、Canvas(画布)
w = Canvas(master, option=value, ... )
https://www.runoob.com/python/python-tk-canvas.html
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('1400x800')
canvas = tk.Canvas(window,bg='blue',height=100,width=200)
image_file = tk.PhotoImage(file='..gif') #.gif文件
image = canvas.create_image(0,0,anchor='nw',image=image_file) #根据anchor定的图片点放在(0,0)点
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') #(x0,y0)和(x1,y1)做矩形,在矩形中画圆
arc = canvas.create_arc(x0+30,y0+30,x1+30,y1+30,start=0,extent=180) #同画圆
rect = canvas.create_rectangle(100,30,130,60)
canvas.pack()
def moveit():
canvas.move(rect,0,2)
b = tk.Button(window,text='move',command=moveit).pack()
window.mainloop()
9、Menubar(菜单)
w = Menubutton(master, option, ... )
https://www.bbsmax.com/A/gGdXgMQG54/
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('1400x800')
def do_job():
global counter
l.config(text='do'+str(counter))
counter+=1
l = tk.Label(window,text='',bg='yellow'
l.pack()
menubar = tk.Menu(window)
filemenu = tk.Menu(menubar,tearoff=0)
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)
submenu = tk.Menu(filemenu,tearoff=0)
filemenu.add_cascade(label='Import',menu=submenu,underline=0)
submenu.add_command(label='Submenu1',command=do_job)
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)
window.config(menu=menubar)
window.mainloop()
10、Frame(框架)
https://blog.csdn.net/qq_41556318/article/details/85108440
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('1400x800')
tk.Label(window,text='on the window').pack()
frm = tk.Frame(window)
frm.pack()
frm_left = tk.Frame(frm)
frm_right = tk.Frame(frm)
frm_left.pack(side='left')
frm_right.pack(side='right')
tk.Label(frm_left,text='on the frm_left_1').pack()
tk.Label(frm_left,text='on the frm_left_2').pack()
tk.Label(frm_right,text='on the frm_right').pack()
window.mainloop()
11、messagebox(消息窗口)
https://www.cnblogs.com/progor/p/8506513.html
import tkinter as tk
#from tkinter import messagebox
window = tk.Tk()
window.title('my window')
window.geometry('1400x800')
def hit_me():
#tk.messagebox.showinfo(title='Hi',message='...')
#tk.messagebox.showwarning(title='Hi',message='...')
#tk.messagebox.showerror(title='Hi',message='...')
#tk.messagebox.askquestion(title='Hi',message='...') #return 'true' or 'false'
#tk.messagebox.askyesno(title='Hi',message='...') #return 'true' or 'false'
tk.messagebox.askretrycancel(title='Hi',message='...') #return 'true' or 'false'
#tk.messagebox.askokcancel(title='Hi',message='...') #return 'true' or 'false'
tk.Button(window,text='...',command=hit_me).pack()
window.mainloop()
12、pack(),grid(),place()(放置位置)
import tkinter as tk
#from tkinter import messagebox
window = tk.Tk()
window.title('my window')
window.geometry('1400x800')
#tk.Label(window,text='1').pack(side='top') #'top','bottom','left','right'
#for i in range(4):
# for j in range(3):
# tk.Label(window,text='1').grid(row=i,column=j,padx=10,pady=10)
tk.Label(window,text='1').place(x=10,y=100,anchor='nw')
window.mainloop()