Python图形界面 Tkinter入门12

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值