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

备注:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值