python 控件类多个实例_Python笔记_第四篇_高阶编程_GUI编程之Tkinter_2.控件类
1. Label控件:
说明:标签控件,可显示文本
图示1:
实例1:
import tkinter
# 创建主窗口__编程头部
win=tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
win.geometry("400x400+1500+500") #格式:400x400表示大小,200和0表示位置
# Label:标签控件,可以显示文本
# win:父窗体
# text:显示的文本内容
# width: 高度
# height:宽度
# bg:背景色
# fb:字体颜色,前景色
# font:字体和字体的大小
# wraplength:指定text文本中多宽进行换行
# justify:设置换行后的对齐方方法
# anchor:位置 e s w n(东南西北),center中心,es,ws,en,wn(东南,西南,东北,西北)
label=tkinter.Label(win,
text="Thomas is a good man",
bg= "black",
fg= "white",
font= ("黑体",14),
width= 10,
height= 4,
wraplength= 100,
justify= "left",
anchor= "e")
# 显示出来
label.pack()
# 保持循环不让窗口关闭__编程尾部
win.mainloop()
备注:让标签显示出现要进行pack放置的命令。
2. Button控件:
说明:
Button控件表示按钮。
图示1:
实例1:
import tkinter
def func():
print("Thomas is a good man")
# 创建主窗口__编程头部
win=tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
win.geometry("400x400+1500+500") #格式:400x400表示大小,200和0表示位置
# Button:创建按钮
# win:父窗体
# text:显示的文本内容
button1= tkinter.Button(win, text="按钮", command=func, width=10, height=10)
# func:写函数的方式
button1.pack()
button2= tkinter.Button(win, text="按钮", command=lambda:print("Thomas is handsome man"),
width=10, height=10)
# lambda表达式
button2.pack()
button3= tkinter.Button(win, text="按钮", command=win.quit, width=10, height=10)
# win.quit/win.destroy 退出
button3.pack()
# 保持循环不让窗口关闭__编程尾部
win.mainloop()
备注:comand用于放置事件,事件一般可以导入函数形式、lambda表达式方式、或者win.quit的内置函数。
3.Entry控件:
说明1:
Entry表示为输入控件,用于显示简单的文本。
图示1:
实例1:
import tkinter
def func():
print("Thomas is a good man")
# 创建主窗口__编程头部
win=tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
win.geometry("400x400+1500+500") #格式:400x400表示大小,200和0表示位置
# Entry:输入控件
# 用于显示简单的文本内容
# 绑定变量
e=tkinter.Variable()
# show 密文显示****/....等
#
entry= tkinter.Entry(win, show = "*",textvariable =e)
entry.pack()
# e就代表输入框这个对象
# 设置值
e.set("sunck is a good man")
# 取值
print(e.get())
print(entry.get())
# 保持循环不让窗口关闭__编程尾部
win.mainloop()
备注:在这里用于到了绑定变量,绑定变量用textvariable来接受这个绑定变量,绑定变量分数值型、布尔型等。其中获取变量用的get方式获取。
说明2:
我们在用一个点击输出内容的方式。
图示2:
实例2:
import tkinter
# 创建主窗口__编程头部
win=tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
win.geometry("400x400+1500+500") #格式:400x400表示大小,200和0表示位置
def showInfo():
print(entry.get())
entry=tkinter.Entry(win)
entry.pack()
button= tkinter.Button(win,text="按钮",command=showInfo)
button.pack()
# 保持循环不让窗口关闭__编程尾部
win.mainloop()
备注:用于点击输入的方式。
4. Text控件:
说明1:
普通的文本控制方式,用于显示多行文本,不带滚动条。
图示1:
实例1:
import tkinter
# 创建主窗口__编程头部
win=tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
win.geometry("400x400+1500+500") #格式:400x400表示大小,200和0表示位置
# Text:文本控件。用于显示多行文本。
# heigth:表示显示的行数
text= tkinter.Text(win,width=30,height=4)
text.pack()
str= '''I stand here today humbled by the task before us, grateful for the trust you have bestowed, mindful of the sacrifices borne by our ancestors. I thank President Bush for his service to our nation, as well as the generosity and cooperation he has shown throughout this transition.'''# 插入文本
text.insert(tkinter.INSERT,str)
# 保持循环不让窗口关闭__编程尾部
win.mainloop()
备注:插入文本我们用了一个insert的方式。
说明2:
用于显示文本的滚动条。
图示2:
实例2:
import tkinter
# 创建主窗口__编程头部
win=tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
# win.geometry("400x400+1500+500") #格式:400x400表示大小,200和0表示位置
# 创建滚动条
scroll=tkinter.Scrollbar()
text= tkinter.Text(win,width=30,height=5)
# side放到窗体的那一侧,fill把Y轴方向填满。
scroll.pack(side=tkinter.RIGHT,fill=tkinter.Y)
text.pack(side=tkinter.LEFT,fill=tkinter.Y)
# 关联
scroll.config(command=text.yview)
text.config(yscrollcommand=scroll.set)
str= '''I stand here today humbled by the task before us, grateful for the trust you have bestowed, mindful of the sacrifices borne by our ancestors. I thank President Bush for his service to our nation, as well as the generosity and cooperation he has shown throughout thistransition.'''# 插入文本
text.insert(tkinter.INSERT,str)
# 保持循环不让窗口关闭__编程尾部
win.mainloop()
备注:注意这里我们用到了一个config的方法去设置位置。
5. CheckButton控件:
说明:
这个叫多选框控件。后面有对应的单选框控件。
图示1:
实例1:
import tkinter
# 创建主窗口__编程头部
win=tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
win.geometry("400x400+1500+500") #格式:400x400表示大小,200和0表示位置
# CheckButton:多选框控件
def update():
message=""
if hobby1.get() ==True:
message+= "money\n"
if hobby2.get() ==True:
message+= "power\n"
if hobby3.get() ==True:
message+= "people\n"# 清除所有text所有内容
text.delete(0.0,tkinter.END)
text.insert(tkinter.INSERT,message)
# 要绑定的变量
hobby1=tkinter.BooleanVar()
# 多选框
check1= tkinter.Checkbutton(win,text="Money",variable=hobby1,command=update)
check1.pack()
hobby2=tkinter.BooleanVar()
check2= tkinter.Checkbutton(win,text="power",variable=hobby2,command=update)
check2.pack()
hobby3=tkinter.BooleanVar()
check3= tkinter.Checkbutton(win,text="people",variable=hobby3,command=update)
check3.pack()
text= tkinter.Text(win,width=50,height=5)
text.pack()
# 保持循环不让窗口关闭__编程尾部
win.mainloop()
备注:我们这里还用到一个布尔型的绑定变量。
6. RadioButton控件:
说明1:
单选框控件。
图示1:
实例1:
import tkinter
# 创建主窗口__编程头部
win=tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
win.geometry("400x400+1500+500") #格式:400x400表示大小,200和0表示位置
# Radiobutton:单选框控件
def update():
print(r.get())
# 绑定变量
# 注意:一组单选框要绑定同一个变量
r=tkinter.IntVar() #绑定整型
# r=tkinter.StringVar() # 绑定字符串
radio1= tkinter.Radiobutton(win,text="one",value=1,variable=r,command=update)
radio1.pack()
radio2= tkinter.Radiobutton(win,text="two",value=2,variable=r,command=update)
radio2.pack()
radio3= tkinter.Radiobutton(win,text="three",value=3,variable=r,command=update)
radio3.pack()
# 保持循环不让窗口关闭__编程尾部
win.mainloop()
备注:
7. Listbox控件:
说明1:
列表框控件。可以包含一个或多个文本框。
图示1:
实例1:
import tkinter
# 创建主窗口__编程头部
win=tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置
# Listbox:列表框控件。可以包含一个或多个文本框。
# 所用:在Listbox小窗口显示一个字符串。常用于目录选择。
#1、创建一个Listbox,添加几个元素
listbox= tkinter.Listbox(win,selectmode=tkinter.BROWSE)
listbox.pack()for item in ["good","nice","handsome","cool","vg","vn"]:
# 按顺序添加
listbox.insert(tkinter.END,item)
# 在开始添加
# listbox.insert(tkinter.ACTIVE,"cool")
# 将列表当做一个元素添加
# listbox.insert(tkinter.END,["very good","very nice"])
# 删除:
# 参数1为开始的索引,参数2为结束的索引,如果不指定参数2,只删除第一个索引处的内容
# listbox.delete(1,3)
# 下标为1的元素
# listbox.delete(1)
# 选中
listbox.select_set(2,5)
# listbox.select_set(2)
# 取消
# listbox.select_clear(2,4)
# listbox.select_clear(3)
# 获取到列表中的元素个数
# print(listbox.size())
# 获取值,返回一个元组
# print(listbox.get(2,4))
# print(listbox.get(2))
# 返回当前的索引项,不是item元素
print(listbox.curselection())
# 判断一个选项是否被选中,返回为布尔值
print(listbox.select_includes(1))
print(listbox.select_includes(3))
# 保持循环不让窗口关闭__编程尾部
win.mainloop()
备注:
说明2:
列表框控件。可以包含一个或多个文本框。在Listbox小窗口显示一个字符串。用于目录选择。与BROWSE相似,但不支持鼠标移动选中位置。
图示2:
实例2:
import tkinter
# 创建主窗口__编程头部
win=tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置
# Listbox:列表框控件。可以包含一个或多个文本框。
# 所用:在Listbox小窗口显示一个字符串。常用于目录选择。
# 绑定变量
lbv=tkinter.StringVar()
# 与BROWSE相似,但不支持鼠标移动选中位置。
lb= tkinter.Listbox(win,selectmode=tkinter.SINGLE,listvariable=lbv)
lb.pack()for item in ["good","nice","handsome","cool","vg","vn"]:
# 按顺序添加
lb.insert(tkinter.END,item)
# 打印当前列表中的选项
print(lbv.get())
# 设置选项
lbv.set(("1","2","3"))
# 绑定事件
def myPrint(event): # event需要一个时间参数不用传参
print(lb.get(lb.curselection()))
lb.bind('',myPrint) # 点两下-按钮-鼠标左键
# 保持循环不让窗口关闭__编程尾部
win.mainloop()
备注:
说明3:
Listbox里诶包控件。可以包含一个或多个文本框。
图示3:
实例3:
import tkinter
# 创建主窗口__编程头部
win=tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
# win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置
# Listbox:列表框控件。可以包含一个或多个文本框。
# 所用:在Listbox小窗口显示一个字符串。常用于目录选择。
# EXTENDED:可以使Listbox支持shift和control,实现连选和多选。
lb= tkinter.Listbox(win,selectmode=tkinter.EXTENDED)for item in ["good","nice","handsome","cool","vg","vn","good1","nice1","handsome1","cool1","vg1","vn1","good3","nice3","handsome3","cool3","vg3","vn3"]:
# 按顺序添加
lb.insert(tkinter.END,item)
# 滚动条
sc=tkinter.Scrollbar(win)
sc.pack(side=tkinter.RIGHT,fill=tkinter.Y)
lb.configure(yscrollcommand=sc.set)
lb.pack(side=tkinter.LEFT,fill=tkinter.BOTH)
# 额外给属性赋值
sc['command'] =lb.yview # command是这个数据类型中的键名,赋值给给内容
# 保持循环不让窗口关闭__编程尾部
win.mainloop()
备注:
说明4:
MULTIPLE支持多选。
图示4:
实例4:
import tkinter
# 创建主窗口__编程头部
win=tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
# win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置
# Listbox:列表框控件。可以包含一个或多个文本框。
# 所用:在Listbox小窗口显示一个字符串。常用于目录选择。
# MULTIPLE:支持多选。
lb= tkinter.Listbox(win,selectmode=tkinter.MULTIPLE)
lb.pack()for item in ["good","nice","handsome","cool","vg","vn","good1","nice1","handsome1","cool1","vg1","vn1","good3","nice3","handsome3","cool3","vg3","vn3"]:
# 按顺序添加
lb.insert(tkinter.END,item)
# 保持循环不让窗口关闭__编程尾部
win.mainloop()
备注:
8. Scale控件:
说明1:
供用户通过拖拽指示器改变变量的值。可以说也可以竖直。
图示1:
实例1:
import tkinter
# 创建主窗口__编程头部
win=tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置
# 供用户通过拖拽指示器改变变量的值。可以水平,也可以竖直
# orient=tkinter.HORIZONTAL/VERTICAL 水平/竖直拖拽,默认是竖直的
# lenght:水平时表示宽度,顺直时表示高度
# tickinterval 选择值将会为该值的倍数
scale= tkinter.Scale(win,from_=0,to=100,orient=tkinter.VERTICAL,tickinterval=10,length=200)
scale.pack()
# 设置值
scale.set(20)
# 获取值
def showNum():
print(scale.get())
tkinter.Button(win,text="按钮",command=showNum).pack()
print(scale.get())
# 保持循环不让窗口关闭__编程尾部
win.mainloop()
备注:
9. Spinbox控件:
说明1:
数值范围控件。
图示1:
实例1:
import tkinter
# 创建主窗口__编程头部
win=tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置
# Spinbox:数值范围控件
# increment=5:步长,默认为1
# values:最好不要from_/to一起使用。value=(0,2,4,6,8)
# command:只要值改变就会执行对应的方法
# 添加方法
def update():
print(v.get())
# 绑定变量
v=tkinter.StringVar()
sp= tkinter.Spinbox(win,from_=0,to=100,increment=1,textvariable=v,command=update)
sp.pack()
# 设置值
v.set(20)
# 取值
print(v.get())
# 保持循环不让窗口关闭__编程尾部
win.mainloop()
备注:
10. Menu控件:
说明1:
菜单控件。
图示1:
实例1:
import tkinter
# 创建主窗口__编程头部
win=tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置
# Menu:顶层菜单
# 菜单条
menubar=tkinter.Menu(win)
# 设置菜单
win.config(menu=menubar)
# 设置命令方法
def func():
print("Thomas is a good man")
# 创建一个菜单选项
menu1= tkinter.Menu(menubar,tearoff=False)
# 给菜单选项添加内容for item in ["Python","C","C++","OC","Swift","C#","shell","Java","JS","PHP","汇编","NodeJS","退出"]:if item == "退出":
# 添加分割线
menu1.add_separator()
menu1.add_command(label=item,command=win.quit)else:
menu1.add_command(label=item,command=func)
# 向菜单条上添加菜单选项
menubar.add_cascade(label="语言",menu=menu1)
# 在创建一个
menu2= tkinter.Menu(menubar,tearoff=False)
menu2.add_command(label="red")
menu2.add_command(label="blue")
menubar.add_cascade(label="颜色",menu=menu2)
# 保持循环不让窗口关闭__编程尾部
win.mainloop()
备注:
说明2:
图示2:
实例2:
import tkinter
# 创建主窗口__编程头部
win=tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置
# Menu:顶层菜单
# 菜单条
menubar=tkinter.Menu(win)
menu= tkinter.Menu(menubar,tearoff=False)
# 给菜单选项添加内容for item in ["Python","C","C++","OC","Swift","C#","shell","Java","JS","PHP","汇编","NodeJS","退出"]:
menu.add_command(label=item)
menubar.add_cascade(label="语言",menu=menu)
# 板顶鼠标右键
def showMenu(event): #
menubar.post(event.x_root,event.y_root)
win.bind("",showMenu) # 2是滚轮,3是右键,1是左键
# 保持循环不让窗口关闭__编程尾部
win.mainloop()
备注:
11. Combobox下拉控件:
说明1:
下拉控件。
图示1:
实例1:
import tkinterfromtkinter import ttk
# 创建主窗口__编程头部
win=tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置
# Combobox:下拉控件
# 绑定变量
cv=tkinter.StringVar()
com= ttk.Combobox(win,textvariable=cv)
com.pack()
# 设置下拉数据
com["value"] = ("黑龙江","吉林","辽宁")
# 设置默认值
com.current(0)
# 绑定事件
def func(event):
print(com.get())
# print("Thomas is a good man")
com.bind("<>",func)
# 保持循环不让窗口关闭__编程尾部
win.mainloop()
备注:
12. Frame控件:
说明1:
在屏幕上显示矩形区域,多作为容器控件。是按照纵向区域来选择的。
图示1:
实例1:
import tkinter
# 创建主窗口__编程头部
win=tkinter.Tk()
# 设置标题
win.title("Thomas的窗口")
# 设置大小和位置
win.geometry("400x400+1500+100") #格式:400x400表示大小,200和0表示位置
# Frame:框架控件
# 在屏幕上显示一个矩形区域,多作为容器控件。是按照纵向区域来选的。
frm=tkinter.Frame(win)
frm.pack()
# left
frm_l=tkinter.Frame(frm)
tkinter.Label(frm_l,text="左上",bg="pink").pack(side=tkinter.TOP)
tkinter.Label(frm_l,text="左下",bg="blue").pack(side=tkinter.TOP)
# left放置
frm_l.pack(side=tkinter.LEFT)
# right
frm_r=tkinter.Frame(frm)
tkinter.Label(frm_r,text="右上",bg="red").pack(side=tkinter.TOP)
tkinter.Label(frm_r,text="右下",bg="yellow").pack(side=tkinter.TOP)
# right放置
frm_r.pack(side=tkinter.RIGHT)
# 保持循环不让窗口关闭__编程尾部
win.mainloop()
备注:
python 控件类多个实例_Python笔记_第四篇_高阶编程_GUI编程之Tkinter_2.控件类相关推荐
- Python笔记_第四篇_高阶编程_检测_2.对类进行单元检测
1. 对类进行单元检测: 第一步:首先编写一个类: # 类名Person,person.pyclass Person(object):def __init__(self,name,age):self. ...
- python gpu编程_Python笔记_第四篇_高阶编程_进程、线程、协程_5.GPU加速
Numba:高性能计算的高生产率 在这篇文章中,笔者将向你介绍一个来自Anaconda的Python编译器Numba,它可以在CUDA-capable GPU或多核cpu上编译Python代码.Pyt ...
- Python笔记_第四篇_高阶编程_正则表达式_3.正则表达式深入
1. re.split 正则的字符串切割 str1 = "Thomas is a good man" print(re.split(r" +",str1)) # ...
- Python笔记_第四篇_高阶编程_进程、线程、协程_5.GPU加速
Numba:高性能计算的高生产率 在这篇文章中,笔者将向你介绍一个来自Anaconda的Python编译器Numba,它可以在CUDA-capable GPU或多核cpu上编译Python代码.Pyt ...
- 高阶Day1:面向对象,面向过程,类和对象的属性和方法创建
高阶Day1:面向对象,面向过程,类和对象的属性和方法创建 高级编程学习4个内容: 面向对象 MySQL数据库 网络编程 并发编程 面向过程(POP)与面向对象(OOP): 类和对象: 类名的定义: ...
- python类和对象实例_python的类和实例化对象
原博文 2018-12-07 16:50 − 一切皆对象,类也是对象,类来自于元类type,如果一个类没有声明自己的元类,默认它就是元类. 即类是元类的实例,通过type(类)会显示type,而实例来 ...
- python类初始化返回实例_Python基础——类、实例及初始化
一.面向对象编程 我们最开始写代码是面向过程编程的,即:一步步按顺序去实现 后来我们学习了函数,把这些功能封装到函数里面,需要实现某个功能的时候直接调用就行,这样可以减少代码的重复性,这就是函数式编程 ...
- python是静态语言还是动态语言_Python笔记--动/静态语言部分区别
在学python之前一直把动态语言和静态语言的区别理解为要写int char这样的预定义类型的就是静态语言,而可以不用事先声明数据类型的则是动态语言,直到看到了这个: python是动态语言,实例创建 ...
- python高阶函数闭包装饰器_Python自学从入门到就业之高阶函数、嵌套函数、闭包、装饰器...
高阶函数 在Python中,函数其实也是一种数据类型. def test(): return 'hello world' print(type(test)) # 函数对应的数据类型是 function ...
最新文章
- 瑟瑟发抖!2020年博士学位论文将抽查50%、硕士20%!
- EchoesWorks —— 打造下一代技术Blog/Presentation 框架(招兵买马)
- redis高并发原理_Java中的42行代码中的URL缩短服务— Java(?!)Spring Boot + Redis...
- sql数据库基础知识整理,常用函数及常用语法
- cisco 2960-24 配置(生产环境)
- sql删除元组_Lecture #02: 中级SQL
- H5 移动端 获取腾讯地图计算两经纬度的实际距离(可批量)_多地打卡
- 新冠疫情,或加速银行数字化服务转型
- itunes备份包括哪些内容_建筑工程的招标包括哪些内容?
- jsp九大内置对象简述
- matlab实现jpg转pgm,Matlab实现图片格式转换 pgm转jpg等
- java井字游戏_java井字棋源代码(双人对战版)
- 盒马鲜生app爬虫与 淘系的×- sign 、 x-mini-wua 、 x-sgext…
- 多策略融合算术优化算法
- python替换word中的图片_python如何提取word内的图片
- Hbuildx 使用vue打包的App实现微信分享功能
- 浅析功率型肖特基二极管的结构类型
- bootstrap3- 导航条 - 慕课笔记
- 计算机专业上哈工大还是华中科技,中国工科第二的高校到底是哪所?浙大、上交、哈工大还是华科?...
- 润乾报表中API动态合并格,连续显示行号
热门文章
- 我说我精通字符串,面试官竟然问我Java中的String有没有长度限制!?|附视频讲解
- 探秘蚂蚁金服分布式事务 Seata 的AT、Saga和TCC模式
- Jeewx 捷微管家操作配置文档(开源版本)
- SpringBoot2 集成测试组件,七种测试手段对比
- View、Text、Button的drawableLeft左侧图片自定义大小
- POJ 2788 ipnetworks 计算机网络相关知识
- 构建模式--Adapter模式(JAVA)
- binder-swagger-java v0.5.0,Swagger API 框架
- swift 闭包的使用
- UVA 10129 Play on Words