摘要:本文主要介绍Tkinter的简单使用。tkinter是python自带的GUI库,是对图形库TK的封装
tkinter是一个跨平台的GUI库,开发的程序可以在win,linux或者mac下运行.除此之外还存在很多图形库。本文主要内容有标签和按钮的使用、输入框和文本框、列表部件、选择按钮、尺度(进度条)、单选框、多选框和画布等Tkinter知识点。
import tkinter as tk
""""制作一个简单的ui界面,和点击事件 2020.7.6"""
#创建一个窗口对象
window = tk.Tk()
#设置窗口名字
window.title('第一个python软件界面')
#设置窗口的长和宽
window.geometry('600x300')
var = tk.StringVar()
#在窗口上定义一个Label对象 窗口对象 文本内容 背景颜色 字体格式 label的长和宽
leb = tk.Label(window,textvariable=var,bg='green',font=('Arial',12),width=15,heigh=8)
#安置leb 位置
leb.pack()
flag = False
def hit():
global flag
if flag == False:
flag = True
var.set("python")
else:
flag = False
var.set("")
#在窗口上定义一个Button对象
butt = tk.Button(window,text="点击试试",width=30,height=2,command=hit)
butt.pack()
#window会不断的刷新 是一个while循环 每点击一次会更新数据
window.mainloop()
"""
1.使用global语句:
如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,
而是 全局 的。我们使用global语句完成这一功能。没有global语句,是不可能为定义在函数外的变量赋值的。
你可以使用定义在函数外的变量的值(假设在函数内没有同名的变量)。然而,我并不鼓励你这样做,
并且你应该尽量避免这样做,因为这使得程序的读者会不清楚这个变量是在哪里定义的。使用global语句可以清楚地表明变量是在外面的块定义的。
"""
2.1代码
import tkinter as tk
""""简单使用entry和text对象 2020.7.6"""
#创建一个窗口对象
window = tk.Tk()
#设置窗口名字
window.title('第一个python软件界面')
#设置窗口的长和宽
window.geometry('600x300')
#定义一个enter 密码格式:show='*' show=None show=1显示固值1,不论你输入什么内容
enter= tk.Entry(window,show=None)
enter.pack()
#定义insert操作功能函数
def insert01():
var = enter.get()
txt.insert('insert',var)#放在指针所标出来的位置
def insert02():
var = enter.get()
txt.insert('end', var) #放在尾部位置 txt.insert(1.1, var)在第一行的第一位后面插入
#定义两个button
butt1 = tk.Button(window,text="插入光标位置后",width=15,height=2,command=insert01)
butt1.pack()
butt2 = tk.Button(window,text="插入尾部",width=10,height=2,command=insert02)
butt2.pack()
#定义一个text
txt = tk.Text(window,height=8)
txt.pack()
#window会不断的刷新 是一个while循环 每点击一次会更新数据
window.mainloop()
"""
"""
import tkinter as tk
""""简单使用列表部件 2020.7.6"""
#创建一个窗口对象
window = tk.Tk()
#设置窗口名字
window.title('第一个python软件界面')
#设置窗口的长和宽
window.geometry('600x300')
var1 = tk.StringVar()
leb = tk.Label(window,bg="yellow",width=4,textvariable=var1)
leb.pack()
#打印选中值,curselection选择光标所在位置
def showSelect():
value = lb.get(lb.curselection())
var1.set(value)
#在窗口上定义一个Button对象
butt = tk.Button(window,text="点击选择",width=15,height=2,command=showSelect)
butt.pack()
#定义一个listBox
var2 = tk.StringVar()
var2.set((11,22,33,44))
lb = tk.Listbox(window,listvariable=var2)
list_items = [1,2,3,4]
for i in list_items:
lb.insert('end',i)
lb.insert(1,'first')
lb.insert(2,'second')
lb.delete(2)
lb.pack()
#window会不断的刷新 是一个while循环 每点击一次会更新数据
window.mainloop()
"""
"""
import tkinter as tk
""""制作一个简单的选择按钮,和点击事件 2020.7.6"""
#创建一个窗口对象
window = tk.Tk()
#设置窗口名字
window.title('第一个python软件界面')
#设置窗口的长和宽
window.geometry('600x300')
var = tk.StringVar()
leb = tk.Label(window,text='empty',bg='green',width=15)
leb.pack()
def selects():
leb.config(text='你的选择是'+var.get())#给莪leb设置值
#定义单选框 如果选中,则把value的值给var 选中A,则var=A
rb0 = tk.Radiobutton(window,text='Option A',variable=var,value='A',command=selects).pack()
rb1 = tk.Radiobutton(window,text='Option B',variable=var,value='B',command=selects).pack()
rb2 = tk.Radiobutton(window,text='Option C',variable=var,value='C',command=selects).pack()
window.mainloop()
import tkinter as tk
""""制作一个简单的进度条,和点击事件 2020.7.7"""
#创建一个窗口对象
window = tk.Tk()
#设置窗口名字
window.title('第一个python软件界面')
#设置窗口的长和宽
window.geometry('600x300')
var = tk.StringVar()
leb = tk.Label(window,text='empty',bg='green',width=15)
leb.pack()
def selects(v):
leb.config(text='你的选择是'+v)#给莪leb设置值
#定义进度条即尺度 名称 范围 方向 长度 是否显示值 标签单位长度 保留的位数
scale = tk.Scale(window,label='调整',from_=1,to=10,orient=tk.HORIZONTAL,
length=200,showvalue=1,tickinterval=3,resolution=0.01,command=selects).pack()
window.mainloop()
import tkinter as tk
""""制作一个简单的多选框 2020.7.7"""
#创建一个窗口对象
window = tk.Tk()
#设置窗口名字
window.title('第一个python软件界面')
#设置窗口的长和宽
window.geometry('600x300')
var = tk.StringVar()
leb = tk.Label(window,text='empty',bg='green',width=20)
leb.pack()
def selects():
if(var1.get()==1)&(var2.get()==0):
leb.config(text='你只选择了Python')
elif(var1.get()==0)&(var2.get()==1):
leb.config(text='你只选择了C++')
elif (var1.get()==0)&(var2.get()==0):
leb.config(text='你没有选中任何选项')
else:
leb.config(text='你选择Python和C++')
var1 = tk.IntVar()#定义成整数形式
var2 = tk.IntVar()
#定义多选框 选中后,会绑定值 选中为var1=1,不选中var1=0
ck1 = tk.Checkbutton(window,text='Python',variable=var1,onvalue=1,offvalue=0,command=selects)
ck1.pack()
ck2 = tk.Checkbutton(window,text='C++',variable=var2,onvalue=1,offvalue=0,command=selects)
ck2.pack()
window.mainloop()
import tkinter as tk
""""制作一个简单的画布 2020.7.7"""
#创建一个窗口对象
window = tk.Tk()
#设置窗口名字
window.title('python画布界面')
#设置窗口的长和宽
window.geometry('500x500')
canvas = tk.Canvas(window,bg='blue',height=250,width=500)
#导入图片
img_f = tk.PhotoImage(file='img/1.gif')#只能是.gif图片格式
#在画布上显示图片 图片坐标 'N S W E nw ne sw se center'规定铆钉的点 与前面坐标结合使用设置铆钉点的坐标位置
img = canvas.create_image(10,10,anchor='nw',image=img_f)
x0,y0,x1,y1= 400,50,500,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+150,x1,y1+150,start=0,extent=180)
rect = canvas.create_rectangle(420,30,440,50)
canvas.pack()
def moveit():
canvas.move(rect,0,6)#选中移动元素 x每次移动0,y每次移动2
b = tk.Button(window,text='move',command=moveit).pack()
#window会不断的刷新 是一个while循环 每点击一次会更新数据
window.mainloop()
参考资料:
B站莫烦Tkinter教学视频