当前位置: 移动技术网 > IT编程>脚本编程>Python > 荐 Python Tkinter学习笔记01 适合想学习Tkinter的小白

荐 Python Tkinter学习笔记01 适合想学习Tkinter的小白

2020年07月08日  | 移动技术网IT编程  | 我要评论
摘要:本文主要介绍Tkinter的简单使用。tkinter是python自带的GUI库,是对图形库TK的封装tkinter是一个跨平台的GUI库,开发的程序可以在win,linux或者mac下运行.除此之外还存在很多图形库。本文主要内容有标签和按钮的使用、输入框和文本框、列表部件、选择按钮、尺度(进度条)、单选框、多选框和画布等Tkinter知识点。

摘要:本文主要介绍Tkinter的简单使用。tkinter是python自带的GUI库,是对图形库TK的封装
tkinter是一个跨平台的GUI库,开发的程序可以在win,linux或者mac下运行.除此之外还存在很多图形库。本文主要内容有标签和按钮的使用、输入框和文本框、列表部件、选择按钮、尺度(进度条)、单选框、多选框和画布等Tkinter知识点。

1.标签和按钮的简单使用

1.1代码

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语句可以清楚地表明变量是在外面的块定义的。

"""

1.2结果

在这里插入图片描述

2.简单使用entry和text对象

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()


"""


"""

2.2结果
在这里插入图片描述

3.简单使用列表部件

3.1代码

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()


"""

"""

3.2结果

在这里插入图片描述

4.制作一个简单的选择按钮

4.1代码

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()

4.2结果

在这里插入图片描述

5.制作一个简单的进度条

5.1代码

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()

5.2结果

在这里插入图片描述

6.制作一个简单的多选框

6.1代码

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()

6.2结果

在这里插入图片描述

7.制作一个简单的画布

7.1代码

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()


7.2结果

在这里插入图片描述

参考资料:
B站莫烦Tkinter教学视频

本文地址:https://blog.csdn.net/yue200403/article/details/107173309

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网