python 特定的GUI界面,是一个图像的窗口,tkinter是python 自带的,可以编辑的GUI界面,我们可以用GUI 实现很多一个直观的功能,如何想开发一个计算器,如果只是一个程序输入,输出窗口的话,是没用用户体验的。所有开发一个图像化的小窗口,就是必要的。
import tkinter as *
#第1步,建立窗口window
root=Tk()
#第2步,给窗口的可视化起名字
root.title('hhh')
#第3步,设定窗口的大小(长*宽)
root.geometry('500x300') #这里的乘是小
#第4步,在图形界面上设定标签
l=tk.Label(root,text='sum funds',bg='green',font=('Arial,12'),width=30,height=2)
#说明: bg为背景,font为字体,width为长,height为高,这里的长和高是字符的长和高,比如height=2,就是标签有2个字符这么高
#第5步,安置标签
l.pack()
#安置lable的方法有:1)l.pack();2)l.place();
#第6步,
root.mainloop()
Button(按钮)
继续上面的代码,开始给root加上Button
import tkinter as *
root=Tk()
window.title('zhuyuanlu-jacky')
window.geometry('500x300')
#第9步,假设变量
var=root.StringVar()
#第10步,因为字符串变量是在标签里显示的,所以要给改l的代码
#l=root.Label(window,text='sum funds',bg='green',font('Arial,12'),width=30,height=2)更改成:
l=tk.Label(root.textvariable=var,bg='green',font('Arial,12'),width=30,height=2)
l.pack()
#第8步,定义hit_me函数
#我们要实现的功能是点击按钮,label从无内容点击后显示出 sum money
#为了点击前后sum money从无到有,我们需要一个变量来代替,所以def hit_me():我们先到第9步,在回到第8步
def hit_me():
b=root.Botton(window,text="hit me",width=15,height=2,command=hit_me)
root.mainloop()
import tkinter as *
root=Tk()
window.title('hhh')
root.geometry('500x300')
var=tk.StringVar()
l=Label(root.textvariable=var,bg='green',font('Arial,12'),width=30,height=2)
l.pack()
#第11步,设定全局变量显示还是不显示
on_hit=False
#第12步,回到第8步,定义函数
def hit_me():
global on_hit
if on_hit==False:
var.set('you hit me')
else:
var.set('')
b=root.Botton(root,text="hit me",width=15,height=2,command=hit_me)
root.mainloop()
Entry
import tkinter as tk
window=tk.Tk()
window.title('zhuyuanlu-jacky')
window.geometry('300x300')
#Entry(输入)
#第1步
e=tk.Entry(window,show=None)
#比如像密码那样输入:show='*'
#第2步,把Entry放在window上面
e.pack()
#第3步,定义button
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() #把button放在label下面的位置
b2=tk.Button(window,text="insert end",command=insert_end)
b2.pack()
#第4步,定义Text
t=tk.Text(window,height=2)
t.pack()
window.mainloop
选择按钮
import tkinter as tk
window=tk.Tk()
window.title('zhuyuanlu-jacky')
window.geometry('300x300')
var=tk.StringVar()
l=tk.Label(window,bg='yellow',width=20,text='empty')
l.pack()
def print_selection():
l.config(text='you have selected'+var.get()) #config可以改变label的参数
r1=tk.Radiobutton(window,text='Option A',variable=var,value='A',command=print_selection)
r1.pack()
r2=tk.Radiobutton(window,text='Option B',variable=var,value='B',command=print_selection)
r2.pack()
r3=tk.Radiobutton(window,text='Option C',variable=var,value='C',command=print_selection)
r3.pack()
window.mainloop
多选
import tkinter as tk
window=tk.Tk()
window.title('zhuyuanlu-jacky')
window.geometry('300x300')
l=tk.Label(window,bg='yellow',width=20,text='empty')
l.pack()
def print_selection():
if(var1.get()==1)&(var2.get()==0):
l.config(text='fund_one month')
elif(var1.get()==0)&(var2.get()==1):
l.config(text='fund_three month')
elif(var1.get()==0)&(var2.get()==0):
l.config(text='')
else:
l.config(text='sum funds')
var1=tk.IntVar()
var2=tk.IntVar()
c1=tk.Checkbutton(window,text='one month',variable=var1,onvalue=1,command=print_selection)
#选定就是打开onvalue,不选定offvalue=0
c2=tk.Checkbutton(window,text='three month',variable=var2,onvalue=1,command=print_selection)
c1.pack()
c2.pack()
window.mainloop
canvas 画布
import tkinter as tk
window=tk.Tk()
window.title('zhuyuanlu-jacky')
window.geometry('300x300')
#创建画布
canvas=tk.Canvas(window,bg='blue',height=100,width=200)
#加载图片的文件
image_file=tk.PhotoImage(file='***.gif') #这里特别注意,有些版本只支持gif图片
image=canvas.creat_image(0,0,anchor='nw',image_file) #图片放的点位,nw就是northwest
canvas.pack()
b=tk.Butthon(window,text='move',command=moveit).pack()
window.mainloop