第十四章:Tkinter模块

本章介绍了Tkinter库中的多种控件,包括Checkbutton、Radiobutton、Listbox、Scale、Spinbox、Menu、Combox和Frame,以及布局管理和各种事件处理,如鼠标和键盘事件,提供用户交互功能。
摘要由CSDN通过智能技术生成

目录

 

Checkbutton控件

Radiobutton控件

Listbox控件

Scale控件

Spinbox控件

Combox控件

Frame控件

表格数据

树状数据

绝对布局

相对布局

表格布局

鼠标事件

鼠标释放事件

鼠标进出事件

键盘事件


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&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值