python(十八)——图形界面Tkinter中

目录

Tkinter组件 

CheckButton复选框控件

语法

显示多选框内容代码:

单选框

ListBox列表框

创建一个listbox

向列表框添加元素

在列表框开头添加元素 

在列表框末尾添加元素

删除列表框元素 

选中列表框中的元素

获取列表框中元素的个数

返回当前选中的元素的索引项

判断列表中一个元素是否被选中

打印列表框中元素

修改列表框中元素

给列表框绑定事件

列表框支持shift和control

列表框支持多选MULTIPLE

scale控件

创建scale


Tkinter组件 

CheckButton复选框控件

Python Tkinter 复选框用来选取我们需要的选项,它前面有个小正方形的方块,如果选中则有一个对号,也可以再次点击以取消该对号来取消选中。

语法

语法格式如下:

w = Checkbutton ( master, option=value, ... )
  • master: 按钮的父容器。
  • options: 可选项,即该按钮的可设置的属性。这些选项可以用键 = 值的形式设置,并以逗号分隔。

显示多选框内容代码:

import tkinter

#创建主窗口
win = tkinter.Tk()
win.title("主界面")
win.geometry("300x300")

def updata():
    message = ""
    if hobby1.get() == True:
        message += "money\n"
    if hobby2.get() == True:
        message += "power\n"
    if hobby3.get() == True:
        message += "person\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 = updata)
hobby2 = tkinter.BooleanVar()
check2 = tkinter.Checkbutton(win,text="power",variable = hobby2,command = updata)
hobby3 = tkinter.BooleanVar()
check3 = tkinter.Checkbutton(win,text="person",variable = hobby3,command = updata)
check1.pack()
check2.pack()
check3.pack()

Text = tkinter.Text(win,width=30,height=15)
Text.pack()

win.mainloop()

单选框

单选按钮控件;显示一个单选的按钮状态

语法:w = Radiobutton ( master, option=value, ... )

绘制一个单选框代码

#创建多选框
#绑定变量
i = tkinter.IntVar()
check1 = tkinter.Radiobutton(win,text="one",value = 1,variable = i)
check2 = tkinter.Radiobutton(win,text="two",value = 2,variable = i)
check3 = tkinter.Radiobutton(win,text="three",value = 3,variable = i)
check1.pack()
check2.pack()
check3.pack()
Text = tkinter.Text(win,width=30,height=15)
Text.pack()

ListBox列表框

 列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户

可以包含一个或者多个文本框,可以在listbox控件的小窗口显示字符串

创建一个listbox

#创建一个listbox
lb = tkinter.Listbox(win,selectmode = tkinter.BROWSE)
lb.pack()
win.mainloop()

向列表框添加元素

#创建一个listbox,添加几个元素
lb = tkinter.Listbox(win,selectmode = tkinter.BROWSE)
lb.pack()
for i in ["ok","very","distance","parrlen"]:
    #按顺序添加
    lb.insert(tkinter.END,i)
win.mainloop()

在列表框开头添加元素 

#在列表框开头添加
lb.insert(tkinter.ACTIVE,"cool")

在列表框末尾添加元素

lb.insert(tkinter.END,"WARM")

删除列表框元素 

语法: lb.delete(参数1,参数2)

参数1为开始的索引,参数2为结束的索引,不添加参数2,就只删除第一个索引引出的内容

for i in ["ok","very","distance","parrlen"]:
    #按顺序添加
    lb.insert(tkinter.END,i)
#删除元素 参数1为开始的索引,参数2为结束的索引,不添加参数2,就只删除第一个索引引出的内容
lb.delete(1,2)

选中列表框中的元素

语法:lb.select_set(参数1,参数2)

参数1为开始的索引,参数2为结束的索引,不添加参数2,就只选中第一个索引引出的内容

for i in ["ok","very","distance","parrlen"]:
    #按顺序添加
    lb.insert(tkinter.END,i)
#选中元素
lb.select_set(1,2)

获取列表框中元素的个数

语法:列表框.size()

print(lb.size())

返回当前选中的元素的索引项

语法:lb.curselection()

lb.select_set(1,2)
#返回当前选中的元素的索引项
print(lb.curselection())

判断列表中一个元素是否被选中

#判断一个元素是否被选中
print(lb.selection_includes(0))
print(lb.selection_includes(2))

打印列表框中元素

语法:lb.get()

#绑定变量
lbv = tkinter.StringVar()
#SINGLE与BROWSE相似,但SINGLE不支持鼠标按住后移动选中元素,只能按下鼠标才能选中元素
lb = tkinter.Listbox(win,selectmode = tkinter.SINGLE,listvariable = lbv)
lb.pack()
for i in ["ok","very","distance","parrlen"]:
    #按顺序添加
    lb.insert(tkinter.END,i)
#打印当前列表中元素
print(lbv.get())

修改列表框中元素

语法:.set()

#打印当前列表中元素
print(lbv.get())
#设置选项
lbv.set(("1","2","3"))
print(lbv.get())

给列表框绑定事件

双击列表框内元素后,将会打印该元素的索引

def fun(event):
    print(lb.curselection())
#绑定事件,双击
lb.bind('<Double-Button-1>',fun)

列表框支持shift和control

EXTENDED 可以使列表框支持shift和control

#EXTENDED 可以使列表框支持shift和control
lb = tkinter.Listbox(win,selectmode = tkinter.EXTENDED)
lb.pack()

按住control能继续选中元素 

列表框支持多选MULTIPLE

点击列表框中的元素,第一次选中,第二次取消

ctrl+a全部选中

#MULTIPLE 支持多选
lb = tkinter.Listbox(win,selectmode = tkinter.MULTIPLE)
lb.pack()
for i in ["ok","very","distance","parrlen","ok","very","distance","parrlen","ok","very","distance","parrlen","parrlen","ok","very","distance","parrlen"]:
    #按顺序添加
    lb.insert(tkinter.END,i)

scale控件

范围控件;显示一个数值刻度,为输出限定范围的数字区间

供用户通过拖拽指示器改变变量的值,可以水平,也可以竖直,默认竖直

创建scale

#创建主窗口
win = tkinter.Tk()
win.title("主界面")
win.geometry("300x200")
#scale 起始值0,终点100
scale = tkinter.Scale(win,from_ = 0,to = 100)
scale.pack()

设置scale水平orient = tkinter.HORIZONTAL

scale = tkinter.Scale(win,from_ = 0,to = 100,orient = tkinter.HORIZONTAL)
scale.pack()

tickinterval选择值将会为该值的倍数,length为scale长度

scale = tkinter.Scale(win,from_ = 0,to = 100,orient = tkinter.HORIZONTAL,tickinterval = 10,length=200)

一起学习,一起进步 -.- ,如有错误,可以发评论 

猜你喜欢

转载自blog.csdn.net/qq_36171287/article/details/93317333