12.1列表框&滚动条
from tkinter import *
root= Tk()
root.title('主窗口')
root.geometry('400x400')
# 框架&滚动条
my_frame=Frame(root,width=400,height=400)
my_scrollbar = Scrollbar(my_frame, orient=VERTICAL)
# 列表框
# selectmode=多选 MULTIPLE() EXTENDED(常用) BROWSE MULTIPLE
my_listbox = Listbox(my_frame,width=50,yscrollcommand=my_scrollbar.set,selectmode=MULTIPLE)
my_scrollbar.config(command=my_listbox.yview)
my_scrollbar.pack(side=RIGHT,fill=Y)
my_frame.pack()
my_listbox.pack()
# 添加选项,方法1. 排序 0 ++ ...
my_listbox.insert(END,'FIR1')
my_listbox.insert(3,'FIR2')
my_listbox.insert(1,'FIR3')
# 添加选项,方法2
my_list = ['sent1','sent2','sent3','sent4','sent5','sent6','sent7','sent8','sent9','sent10']
for i in my_list:
my_listbox.insert(END,i)
def select():
my_label.config(text=my_listbox.get(ACTIVE))
def select_all(): #多选
result = ''
for i in my_listbox.curselection():
result += str(my_listbox.get(i)) + '\n'
my_label.config(text=result)
def delete():
my_listbox.delete(ACTIVE) #删除选中的
my_label.config(text='')
def delete_multiple(*args):
for i in reversed(my_listbox.curselection()): #反序执行
my_listbox.delete(i)
def deletea_all():
my_listbox.delete(0,END)
my_button = Button(root,text='删除',command=delete)
my_button.pack()
my_button2 = Button(root,text='选中',command=select)
my_button2.pack()
my_button3 = Button(root,text='删除所有',command=deletea_all)
my_button3.pack()
my_button4 = Button(root,text='多选',command=select_all)
my_button4.pack()
my_button5 = Button(root,text='删除多选',command=delete_multiple)
my_button5.pack()
my_label = Label(root,text='')
my_label.pack()
root.mainloop()
12.2更新小部件
from tkinter import *
root= Tk()
root.title('主窗口')
root.geometry('400x400')
# 更新小部件参数:
# .config
def something():
my_label.config(text='更新新的文本')
root.config(bg='red')
my_button.config(text='已修改')
my_label = Label(root,text='这是一个文本',font=('Arial',12,'bold'))
my_label.pack(pady=10)
my_button = Button(root,text='按钮',command=something)
my_button.pack(pady=10)
root.mainloop()
12.3选项卡
from pydoc_data.topics import topics
from tkinter import *
from tkinter import ttk
from Tools.demo.spreadsheet import center
root= Tk()
root.title('主窗口')
root.geometry('400x400')
# 选项卡--页面--选项
my_notebook = ttk.Notebook(root)
my_notebook.pack(pady=15)
def hide():
my_notebook.hide(1) #隐藏第2个选项
def show():
my_notebook.add(my_frame2,text='选项2')
def select():
my_notebook.select(1)
my_frame1 = Frame(my_notebook,width=400,height=400,bg='blue')
my_frame2 = Frame(my_notebook,width=400,height=400,bg='red')
my_frame1.pack(fill=BOTH,expand=1)
my_frame2.pack(fill=BOTH,expand=1)
my_notebook.add(my_frame1,text='选项1')
my_notebook.add(my_frame2,text='选项2')
# fill=BOTH,expand=1 填充页面,全页按钮大小
btn1 = Button(my_frame1,text='隐形选项2',command=hide).pack()
btn2 = Button(my_frame1,text='显示选项2',command=show).pack()
btn2 = Button(my_frame1,text='切换选项2',command=select).pack()
root.mainloop()