窗口可视化Tkinter学习笔记

copyright@zyzhou


Chap1. 写一个窗口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import tkinter as tk#导入库
window = tk.Tk()#创建窗口
window.title('my window')#设置窗口名称
window.geometry('200x200')#设置窗口大小
var=tk.StringVar()#设置要显示的文本是字符串
l = tk.Label(window, textvariable = var,bg = 'green',font=('Arial'))#设置标签
l.pack()#放置标签
on_hit = False#设置逻辑:点击按钮显示,再点击不显示
def hit_me():
global on_hit
if on_hit == False:
on_hit = True
var.set('you hit me')
else:
on_hit = False
var.set('')

b = tk.Button(window, text='hit me', width=15, height=2, command=hit_me)#设置按钮
b.pack()#放置
window.mainloop()#设置程序持续运行,启动窗口主循环

用到的函数

  1. tk.Tk()
  2. tittle()
  3. geometry()
  4. tk.StringVar()
  5. tk.Label()
  6. .pack()
  7. .set()
  8. tk.button()

Chap2. 输入框 entry,文本框 text

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import tkinter as tk#导入库
window = tk.Tk()#创建窗口
window.title('my window')#设置窗口名称
window.geometry('200x200')#设置窗口大小
var=tk.StringVar()#设置要显示的文本是字符串
e=tk.Entry(window,show='*')
e.pack()
def insert_point():
var=e.get()
t.insert('insert',var )
def insert_end():
var=e.get()
t.insert('end',var)
b1=tk.Button(window, text='insert point', width=15, height=2, command=insert_point)#设置按钮
b1.pack()#放置
b2=tk.Button(window,text='insert end',width=15, height=2,command=insert_end)
b2.pack()
t=tk.Text(window,height=2)
t.pack()
window.mainloop()#设置程序持续运行,启动窗口主循环

用到的函数

  1. tk.Entry()
  2. .get()
  3. .insert()
  4. tk.Text()

Chap3. 列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#做一个列表
import tkinter as tk#导入库
window = tk.Tk()#创建窗口
window.title('my window')#设置窗口名称
window.geometry('200x200')#设置窗口大小
var1=tk.StringVar()#设置变量
var2=tk.StringVar()
#设置显示窗口
l=tk.Label(window,bg='yellow',width=4,textvariable=var1,fg='blue')
l.pack()
#设置窗口button
def print_selection():
selected_items = lb.curselection()
if selected_items:
value=lb.get(selected_items[0])
var1.set(value)
b1=tk.Button(window, text='print selection', width=15, height=2, command=print_selection)#设置按钮
b1.pack()#放置

var2.set([11,22,33,44])
lb=tk.Listbox(window,listvariable=var2)
list_items=[1,2,3,4]
for item in list_items:
lb.insert('end',item)
lb.insert(1,'first')
lb.insert(2,'second')
lb.delete(2)
lb.pack()
window.mainloop()#设置程序持续运行,启动窗口主循环
  • 未选择的时候进行跳出提示请选择

功能:输入的内容进入列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 功能:输入的内容进入列表
import tkinter as tk
window = tk.Tk()
window.title('my window')
window.geometry('200x200')
var1=tk.StringVar()
var2=tk.StringVar()
#设置显示窗口
l=tk.Entry(window,show=None)
l.pack()
#设置窗口button
def print_list():
var1=l.get()
lb.insert('end',var1)
b1=tk.Button(window, text='transfer', width=15, height=2, command=print_list)#设置按钮
b1.pack()
lb=tk.Listbox(window,width=10, height=10)#输出框(列表)
lb.pack()
window.mainloop()

功能:选择按钮radiobutton

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import tkinter as tk
window=tk.Tk()
window.title('my window')
window.geometry('200x200')

var=tk.StringVar()
l=tk.Label(window,bg='blue',width=20,text='empty')
l.pack()

def print_selection():
l.config(text='you have selected '+var.get())

r1=tk.Radiobutton(window,text='Option A',
var=var,value='A',command=print_selection)
r1.pack()
window.mainloop()

功能:刻度尺滑动选择条

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import tkinter as tk
window=tk.Tk()
window.title('my window')
window.geometry('200x200')

l=tk.Label(window,bg='blue',width=20,text='empty')
l.pack()

def print_selection(v):
l.config(text='you have selected '+ v)

s=tk.Scale(window,label='try me',from_5,to=10,orient=tk.HORIZONTAL,
length=200,showvalue=0,tickinterval=3,
resolution=0.01,command=print_selection)
s.pack()

window.mainloop()
  • 取值范围from_5,to=10,
  • orient=tk.HORIZANTAL,定义横向还是竖向
  • length=200,显示长度像素pixel,和label不一样,label是字符
  • showvalue=0,选值显示true1false0
  • tickinterval=3,标签单位标记,
  • resolution=0.01,保留两位小数
  • command=print_selection有默认传入值v

功能:刻度尺滑动选择条

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import tkinter as tk
window=tk.Tk()
window.title('my window')
window.geometry('200x200')

l=tk.Label(window,bg='blue',width=20,text='empty')
l.pack()

def print_selection():
if(var1.get()==1)&(var2.get()==0):
l.config(text='I love only Python')
elif(var1.get()==0)&(var2.get()==1):
l.config(text='I love only C++')
elif(var1.get()==0)&(var2.get()==0):
l.config(text='I love none of them')
else:
l.config(text='I love both')

var1=tk.IntVar()
var2=tk.IntVar()
c1=tk.Checkbutton(window,text='Python',variable=var1,onvalue=1,offvalue=0,
command=print_selection)
c2=tk.Checkbutton(window,text='C++',variable=var2,onvalue=1,offvalue=0,
command=print_selection)
c1.pack()
c2.pack()

window.mainloop()

Source: Python GUI

-------------本文结束,感谢您的阅读-------------
您的支持是我最大动力~