tkinter的listbox、radiobutton和checkbutton学习(2)

1.tkinter的listbox

1.1 代码

#第1步,导出模块
import tkinter as tk 
#定义窗口,及其标题、大小和位置
win = tk.Tk()
win.title('Listbox study window') #定义标题,如果未设置,就是默认tk的标题
win.geometry('600x400+500+0') #+500+0,是布局位置,500为x=由左侧水平移动500,0为y=顶点位置,往下移动0
#定义v=var=variable=变量
v1=tk.StringVar()
#label标签设置
l=tk.Label(win,bg='pink',width=20,height=2,textvariable=v1)
l.pack()
#定义函数
def print_selection():
value=lb.get(lb.curselection()) #lb.curselection()是listbox的一个cur(光标)selection(选择)
v1.set(value)
#按钮设置
b1=tk.Button(win,text='print selection',width=15,height=2,command=print_selection) 
b1.pack()
#定义v2变量
v2=tk.StringVar()
#v2.set((11,222,3333,444,55555)) #新加入的列表值
v2.set(('','大家','美丽风景','万里长城永不倒')) #里面是元组(),可以是数字或字符串

lb=tk.Listbox(win,listvariable=v2) #定义lb为listbox
lb.pack()

lsit_items=[1,2,3,4] #原本list_box列表里面的数字,初始化列表里面有内容
#往listbox内添加内容的方法一
for item in lsit_items:
lb.insert('end',item) #insert函数的‘end’,以及加入的内容
#往listbox内添加内容的方法二
lb.insert(1,'first') 
lb.insert(2,'second')
lb.delete(2) #删除序列2的内容

win.mainloop()
View Code


1.2 图1


2.radiobutton学习

2.1 代码

#第1步:导出模块
import tkinter as tk 
#第2步:定义窗口,及其标题、大小和位置
win = tk.Tk()
win.title('radiobutton study window') #定义标题,如果未设置,就是默认tk的标题
win.geometry('600x400+500+0') #+500+0,是布局位置,500为x=由左侧水平移动500,0为y=顶点位置,往下移动0
#上述格式基本固定
#定义v=var=variable=变量
v=tk.StringVar()
#label标签设置
l=tk.Label(win,bg='pink',width=20,height=2,text='empty')
l.pack()
#定义command的选择命令
def print_selection():
l.config(text='you have selected: '+v.get()) #重点学习l=label的config函数和v=variable变量的get函数
#radiobutton的设置
r1=tk.Radiobutton(win,text='Option A',variable=v,value='A',command=print_selection)
r1.pack()
r2=tk.Radiobutton(win,text='Option B',variable=v,value='B',command=print_selection)
r2.pack()
r3=tk.Radiobutton(win,text='Option C',variable=v,value='C',command=print_selection)
r3.pack()
#循环挂起
win.mainloop()
View Code

2.2 图2

3.checkbutton的学习

3.1 代码:

#第1步:导出模块
import tkinter as tk 
#第2步:定义窗口,及其标题、大小和位置
win = tk.Tk()
win.title('Checkbutton study window') #定义标题,如果未设置,就是默认tk的标题
win.geometry('600x400+500+0') #+500+0,是布局位置,500为x=由左侧水平移动500,0为y=顶点位置,往下移动0
#上述格式基本固定
#定义v=var=variable=变量
v=tk.StringVar()
#label标签设置
l=tk.Label(win,bg='pink',width=20,height=2,text='empty') #也可以设置初始值是text='',即没有内容输出
l.pack()
#定义command的选择命令
def print_selection():
if (v1.get()==1) & (v2.get()==0):
l.config(text='I love Python')
elif (v1.get()==0) & (v2.get()==1):
l.config(text='I love C++') 
#方法一
elif (v1.get()==1) & (v2.get()==1):
l.config(text='I love both') 
else:
l.config(text='I donot love either')

'''
#方法二
elif (v1.get()==0) & (v2.get()==0):
l.config(text='I donot love either') 
else:
l.config(text='I love both') 
'''
#定义checkbutton的变量和按钮设置,位置
v1=tk.IntVar()
cb1=tk.Checkbutton(win,text='Python',variable=v1,onvalue=1,offvalue=0,command=print_selection)
cb1.pack()
#定义二
v2=tk.IntVar()
cb2=tk.Checkbutton(win,text='C++',variable=v2,onvalue=1,offvalue=0,command=print_selection)
cb2.pack()
#注意由于cb1和cb2(cb=checkbutton)的text的内容字符串长度不一致,故显示感觉1和2位置不是左边垂直对齐
#可以如下设置
#text='C++ '增加其内的字符串空格代替

#循环挂起
win.mainloop()
View Code

3.2 图3

原文地址:https://www.cnblogs.com/ysysbky/p/12198266.html