目录
Checkbutton控件
Checkbutton是复选框控件,支持多个选项。
# Checkbutton控件
import tkinter
def update():
message = ""
if hobby1.get() is True:
message += "money\n"
if hobby2.get() is True:
message += "power\n"
if hobby3.get() is True:
message += "person\n"
text.delete(0.0, tkinter.END)
text.insert(tkinter.INSERT, message)
win = tkinter.Tk()
win.title("Demo") # 设置窗口标题
win.geometry("400x400+200+200") # 设置大小和位置
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="person", variable=hobby3, command=update)
check3.pack()
text = tkinter.Text(win, width=50, height=5)
text.pack()
win.mainloop()
Radiobutton控件
Radiobutton是单选框控件。
# Radiobutton控件
import tkinter
def update():
print(r.get())
win = tkinter.Tk()
win.title("Demo") # 设置窗口标题
win.geometry("400x400+200+200") # 设置大小和位置
# 一组单选框要绑定同一个变量
r = tkinter.IntVar()
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()
Listbox控件
Listbox是列表框控件,它可以包含一个或者多个文本框。
# Listbox控件
import tkinter
win = tkinter.Tk()
win.title("Demo") # 设置窗口标题
win.geometry("400x400+200+200") # 设置大小和位置
lbv = tkinter.StringVar()
lb = tkinter.Listbox(win, selectmode=tkinter.BROWSE, listvariable=lbv)
# lb = tkinter.Listbox(win, selectmode=tkinter.SINGLE) # 不支持鼠标单击移动时选中
print(lbv.get()) # 显示绑定的变量
lbv.set(("1", "2", "3")) # 设置选项方式一
lb.pack()
for item in ["good", "nice", "handsome", "vg", "vn"]:
lb.insert(tkinter.END, item) # 设置选项方式二:按顺序在列表框尾部添加元素
lb.insert(tkinter.ACTIVE, "cool") # 设置选项方式三:在列表框首行添加元素
lb.insert(tkinter.ACTIVE, ["very good", "very nice"]) # 把列表当成一个元素添加
# 删除格式listbox.delete(pos1[, pos2])
lb.delete(1, 3)
# 选中格式listbox.select_set(pos1[, pos2])
lb.select_set(2)
# 取消选中格式listbox.select_clear(pos1[, pos2])
lb.select_clear(2)
print(lb.size()) # 获取列表框中元素的个数
# 获取列表框中元素的值listbox.get(pos1[, pos2])
print(lb.get(2, 4))
print(lb.curselection()) # 返回当前选中项的索引值
print(lb.selection_includes(1)) # 返回索引项是否被选中
def myPrint(event):
print(lb.curselection())
lb.bind('<Double-Button-1>', myPrint) # 绑定事件,此处1表示鼠标左键
win.mainloop()
# Listbox控件
import tkinter
win = tkinter.Tk()
win.title("Demo") # 设置窗口标题
# EXTENED可以使listbox支持shift和control,实现连选和多选
lbv = tkinter.StringVar()
lb = tkinter.Listbox(win, selectmode=tkinter.EXTENDED, listvariable=lbv)
# MULTIPLE 不需要shift和control&#