python中tkinter的使用-中

00Listbox控件

import tkinter

win = tkinter.Tk()
win.title("Liuwang")
win.geometry("400x400+200+20")

'''
列表框控件,可以包含一个或者多个文本框
作用:在listbox控件的小窗口显示一个字符串

'''
#1、创建一个listbox,添加几个元素,BROWSE支持按下鼠标移动位置
lb= tkinter.Listbox(win,selectmode = tkinter.BROWSE)
lb.pack()
for item in ["good ","nice","handesome","bs","sa","aa"]:
    lb.insert(tkinter.END,item)

#在开始添加
# lb.insert(tkinter.ACTIVE,"COOL")
#将列表当成一个元素添加的
# lb.insert(tkinter.END,["very good ","very nice"])
#删除 参数1,为开始的索引,参数二为结束的索引,如果不指定参数二,只删除第一个索引处的内容
# lb.delete(1,3)
# lb.delete(1)
#选中参数1,为开始的索引,参数二为结束的索引,如果不指定参数二,只选中第一个索引处的内容
# lb.select_set(2,4)
# lb.select_set(2,)
#取消选中
# lb.select_clear(2,4)
# lb.select_clear(3)
#获取道列表中的元素个数
# print(lb.size())   # 6
#从列表中取值
# print(lb.get(2,4))  #('handesome', 'bs', 'sa')
# print(lb.get(2))
#返回当前的索引项
# print(lb.curselection())  #(2,)
#判断一个选项是否被选中
# print(lb.selection_includes(3))#False
# print(lb.selection_includes(2))#True



win.mainloop()

01Listbox控件中

import tkinter

win = tkinter.Tk()
win.title("Liuwang")
win.geometry("400x400+200+20")

#绑定变量
lbv =tkinter.StringVar()

#与BORWSE相似,但是不支持按下鼠标移动位置
lb = tkinter.Listbox(win,selectmode = tkinter.SINGLE,listvariable=lbv)
lb.pack()
for item in ["good ","nice","handesome","bs","sa","aa"]:
    lb.insert(tkinter.END,item)


#打印当前列表中的选项
print(lbv.get())
#设置选择
# lbv.set(("1","2","3"))
# print(lbv.get())

#绑定事件
def myPrint(event):
    print(lb.curselection(),end="")#打印下标
    print(lb.get(lb.curselection()))
lb.bind("<Double-Button-1>",myPrint,)








win.mainloop()

02Listbox控件种下

import tkinter

#创建主窗口
win = tkinter.Tk()
win.title("Liuwang")
# win.geometry("400x400+200+20")


#EXTENDED 可以使listbox支持shift 和 control。
#按住shift,可以实现连续选中
lb = tkinter.Listbox(win,selectmode = tkinter.EXTENDED)
lb.pack()
for item in ["good ","nice","handesome","bs","sa","aa"
             ,"nice1","handesome1","bs1","sa1","a1a"
             ,"nic21e","handeso2me","bs2","sa2","aa2"]:
    lb.insert(tkinter.END,item)
# 创建滚动条
sc = tkinter.Scrollbar(win)
sc.pack(side= tkinter.RIGHT,fill=tkinter.Y)
lb.configure(yscrollcommand=sc.set)
lb.pack(side= tkinter.LEFT,fill= tkinter.BOTH)
# 额外给属性赋值
sc['command'] = lb.yview




win.mainloop()

03Listbox控件下

import tkinter

win = tkinter.Tk()
win.title("Liuwang")
win.geometry("400x400+200+20")

# MULTIPLE支持多选
lb = tkinter.Listbox(win,selectmode = tkinter.MULTIPLE )
lb.pack()
for item in ["good ","nice","handesome","bs","sa","aa"]:
    lb.insert(tkinter.END,item)






win.mainloop()

04Scale控件


import tkinter

win = tkinter.Tk()
win.title("Liuwang")
win.geometry("400x400+200+20")

'''
供用户通过拖拽指示器改变变量的值,可以水平,也可以竖直
orient=tkinter.HORIZONTAL 水平
orient=tkinter.VERTICAL   竖直
tickinterval    选择之将会为该值的倍数

'''
scale1 = tkinter.Scale(win,from_=0,to=100,
                       orient=tkinter.VERTICAL,
                       tickinterval = 20,length = 200)

scale1.pack()


#设置值
scale1.set(21)


def showNum():
    print(scale1.get())
tkinter.Button(win,text ="按钮",command = showNum).pack()

win.mainloop()

05Spingbox


import tkinter

win = tkinter.Tk()
win.title("Liuwang")
win.geometry("400x400+200+20")

'''
数值范围控件
'''
#绑定变量
v = tkinter.StringVar()

#increment 步长 默认为1
# values 最好不要与from_ = 0 ,to = 100,,increment=2同时使用
#command 只要值改变就会执行对应的方法


def update():
    print(v.get())
sp = tkinter.Spinbox(win,from_=0,to = 100,increment=5,
                     textvariabl=v,command = update)
sp.pack()


# 设置值
# v.set(20)
# print(v.get())




win.mainloop()

06Menu顶层菜单

import tkinter

win = tkinter.Tk()
win.title("Liuwang")
win.geometry("400x400+200+20")


menubar = tkinter.Menu(win)
win.config(menu= menubar)

#menu1
#创建一个菜单选项
menu1 = tkinter.Menu(menubar,tearoff = False)
menu2 = tkinter.Menu(menubar,tearoff = False)
#向菜单栏添加内容
menubar.add_cascade(label="语言",menu = menu1)
menubar.add_cascade(label="颜色",menu = menu2)

def func():

    print("Hello world")


#给菜单里添加内容
for item in["Python","C","C++","OS","Swift","C#","shell","Java"
            "JS","PHP","汇编","Nodejs","退出",]:
    if item == "退出":
        menu1.add_separator() # 添加分割线
        menu1.add_command(label=item,command = win.quit)
    else:
        menu1.add_command(label=item,command= func)


menu2.add_command(label="red")
menu2.add_command(label="bule")









win.mainloop()

07Menu鼠标右键菜单

import tkinter

win = tkinter.Tk()
win.title("Liuwang")
win.geometry("400x400+200+20")
#菜单条
menubar = tkinter.Menu(win)


#菜单
menu = tkinter.Menu(menubar,tearoff = False)
#给菜单里添加内容
for item in["Python","C","C++","OS","Swift","C#","shell","Java"
            "JS","PHP","汇编","Nodejs","退出",]:
    menu.add_command(label=item)
menubar.add_cascade(label = "语言",menu = menu)

def showMenu(event):
    menubar.post(event.x_root,event.y_root)
win.bind("<Button-3>",showMenu)





win.mainloop()

08Combobox下拉控件

import tkinter
from tkinter import  ttk

win = tkinter.Tk()
win.title("Liuwang")
win.geometry("400x400+200+20")
#创建下拉框
# com = ttk.Combobox(win,)
# com.pack()
#设置下拉数据


# #绑定变量
cv = tkinter.StringVar()
com= ttk.Combobox(win,textvariable = cv )
com.pack()

com["value"]= ("黑龙江","吉林","辽宁")

#设置默认值
com.current(0)


#绑定时间
def func(event):
    print("Liuwang is handsome")
    print(com.get())
    # print(cv.get())
com.bind("<<ComboboxSelected>>",func)














win.mainloop()

09Frame控件

import tkinter

win = tkinter.Tk()
win.title("Liuwang")
win.geometry("400x400+200+20")

'''
框架控件
在屏幕上可以显示一个矩形区域,多作为容器控件

'''
#整个窗口中创建frame
frm = tkinter.Frame(win)
frm.pack()


#left
#在frm 的框架里创建了一个frame
frm_1=tkinter.Frame(frm)
tkinter.Label(frm_1,text=" 左上 " ,bg ="pink").pack(side= tkinter.TOP)
tkinter.Label(frm_1,text=" 左下 " ,bg ="blue").pack(side= tkinter.TOP)
frm_1.pack(side= tkinter.LEFT)

#RIGHT
frm_2=tkinter.Frame(frm)
tkinter.Label(frm_2,text=" 右上 " ,bg ="yellow").pack(side= tkinter.TOP)
tkinter.Label(frm_2,text=" 右下 " ,bg ="red").pack(side= tkinter.TOP)
frm_2.pack(side= tkinter.RIGHT)


win.mainloop()

猜你喜欢

转载自blog.csdn.net/qq_41856814/article/details/89398284
今日推荐