Tkinter图形设计——Tkinter常用组件(二)

前言:接着前面的进行补充说明
这里直接引用此博主的博文

python基础知识-GUI编程-TK-StringVar

  1. Listbox列表框组件(用于显示多个文本或者项目)
    一 . 相关语法:
  • 创建文本框和显示文本框:
    python Listbox对象 = Listbox(窗口对象) Listbox对象.pack()
  • 插入文本内容:
    Listbox对象.insert(index,item)
    1)index是插入的位置:
    如果以追加的方式插入那么index应该是END
    如果在开头插入那么index应该是0
    如果在当前插入那么index应该是ACTIVE
    2)item是要插入的内容
  • 返回选中的文本内容所在位置(或者是返回选中项的索引):
    Listbox对象.curselection()
    注:返回的是元组,且索引号从0开始
  • 删除文本内容(或者是删除文本项):
    Listbox对象.delete(first,last)
  • 获取文本内容
    Listbox对象.get(first,last)
  • 获取文本的个数
    Listbox对象.size()
  • 获取Listbox所有的文本内容
变量名=StringVar()
列表框对象=Listbox(窗口对象,listvariable=变量名)
列表框对象.get()

注意:如果当用户想要选择多个文本内容时,需要更改属性
selectmode将其改为MULTIPLE

二. 相关python语言描述:

from tkinter import*
root = Tk()
root.geometry("450x400")
#创建窗口,并设置窗口的大小

lb1 = Listbox(root) #创建第一个列表框
lb1.grid(row=0,column=0,rowspan=4) #利用grid几何布局设置第一个列表框的位置
for i in ["语文","数学","英语","物理","化学","生物"]:
	lb1.insert(END,i)
#利用insert()函数添加到第一个列表框	

lb2 = Listbox(root)#创建第二个列表框
lb2.grid(row=0,column=2,rowspan=4)#设置列表框的位置

def tianjia():
    for i in lb1.curselection():
        lb2.insert(END,lb1.get(i))
  #利用curselection(),insert()函数进行添加操作
 
 def shanchu():
    for i in lb2.curselection():
        lb2.delete(i)
    #利用curselection(),delte()函数进行添加操作

Button(root,text='添加>',command=tianjia,width=20).grid(row=0,column=1)
Button(root,text='删除>',command=shanchu,width=20).grid(row=2,column=1)
#设置俩个按钮组件,并利用command进行函数绑定

root.mainloop()

三. 相关python语言实现
在这里插入图片描述
在这里插入图片描述

5.单选按钮(Radiobutton)和复选按钮(Checkbutton)

一 相关语法:

  • 创建单选按钮并显示按钮和创建复选按钮并显示按钮
创建单选按钮:
Radiobutton对象 = Radiobutton(窗口对象,text=按钮需要显示的文本)

显示单选按钮:
Radiobutton对象.pack()

创建复选框按钮:
Checkbutton对象=Checnkbutton(窗口对象,text=Checkbutton组件显示的文本,command=单击Checkbutton按钮所触发的函数)

显示复选框按钮:
checkbutton对象.pack()



  • Radiobutton常用属性
属性描述
variable单击按钮索引变量,通过变量的值确定哪个单选按钮被选中。一组单选按钮用的是同一个索引变量
value单选按钮选中时变量的值
command点击单选按钮是触发的函数
  • Checkbutton常用属性
属性描述
variable复选框索引变量,通过变量的值确定哪些复选框被选中。当复选框使用不同的变量时,那么这些复选框直接相互独立
onvalue复选框被选中的时候变量的值
offvalue复选框未被选中的时候变量的值
  • Radiobutton组件的方法:
方法描述
deselect()取消选择
select()选择
invoke()调用单选按钮指定的回调函数
  • 获取Checkbutton的状态:
变量名=IntVar()
变量名.set()
check=tkinter.Checkbutton(窗口对象,variable=变量名)
变量名.get()

二 相关的python语言:

from tkinter import*
root = Tk() #创建窗口
root.title("选框按钮") #设置窗口标题
a = Label(root,text="欢迎来到选框按钮!!!") #设置标签
a.pack() #显示标签
strs = StringVar() #设置TK中的可变字符变量
strs.set("black") #初始化变量的值
def colorchoose(): #定义colorchoose函数
    global a #定义全局变量
    a['fg']=strs.get() #设置标签的背景(这是引用标签的属性的另外一种方法)

#创建三个单选按钮,并利用variable将其赋值同一个变量(作用是为了使其成为一个分组中)
Radiobutton(root,text='红色',variable=strs,value='red',command=colorchoose).pack(side='left')
Radiobutton(root,text='蓝色',variable=strs,value='blue',command=colorchoose).pack(side='left')
Radiobutton(root,text='绿色',variable=strs,value='green',command=colorchoose).pack(side='left')

#创建俩个可变的int类型的变量
ints1 = IntVar()
ints2 = IntVar()

#定义typecheck函数
def typecheck():
    global a
    global ints1,ints2
    b = ints1.get() + ints2.get()
    if b==1:
        a['font'] = ("Arial",12,"bold")
    elif b==2:
        a["font"] = ("Arial",12,"italic")
    elif b==3:
        a["font"] =("Arial",12,"bold italic")
    else:
        a["font"] = ("Arial",12)
        

Checkbutton(root,text="粗体",variable=ints1,onvalue=1,offvalue=0,command=typecheck).pack(side='left')
#创建一个复选框按钮,并将其的offvalue(未选中),onvalue(选中)进行设置


Checkbutton(root,text="粗体",variable=ints2,onvalue=2,offvalue=0,command=typecheck).pack(side='left')
#同上
root.mainloop()


三 相关的python语言的实现:

在这里插入图片描述

  1. 菜单按钮(Menu)[不做过多的解释]
    相关pyton语言的实现

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  1. 对话框组件:
    1)文件对话框(不进行详细解释)
    2)颜色对话框(不进行详细解释)
    3)简单对话框 (不进行详细解释)

在这里插入图片描述

在这里插入图片描述

8.Frame框架组件(相当于是一个容器,为其他组件的添加提供基础)
一 相关语法:

创建Frame对象和显示对象:
   Frame对象 = Frame(窗口对象,相关的属性)
   Frame对象.pack()

向Frame组件中添加组件并显示组件:
  例如:Label(Frame对象,text="hello").pack()
	#主要语言无法解释,用例子的形式进行解释(望读者理解)

LabelFrame组件:
解释:LabelFrame组件是有标题的Frame框架组件
LabelFrame(窗口对象,text=标题,height=高度,width=宽度).pack()

关于after函数(借用此博主的文章)

https://blog.csdn.net/infoworld/article/details/84669459?ops_request_misc=&request_id=&biz_id=102&utm_source=distribute.pc_search_result.none-task-blog-2allsobaiduweb~def

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值