五、tkinter图形界面(一)
大概这是参加工作以来休得唯一一个寒假了
tkinter:
0.字符串设置
e = tkinter.Variable() #entry控件的字符变量
hobby1 = tkinter.BooleanVar() #checkbox控件的字符变量 variable=hobby1
lbv = tkinter.StringVar() #listbox控件的字符变量 listvariable=lbv
v = tkinter.StringVar() #spinbox控件的字符变量 textvariable=v
v = tkinter.StringVar() #Menubar_radiobutton变量 variable=v
v = tkinter.IntVar() #Radiobutton控件的变量 variable=v
1.确定tkinter框架:
import tkinter
root = tkinter.Tk()
root.tittle("标题")
root.geometry("300x300+150+150") #确定图形界面大小及弹出的位置。
root.mainloop()
2.label控件
import tkinter
root = tkinter.Tk()
root.tittle("标题")
root.geometry("300x300+150+150") #确定图形界面大小及弹出的位置。
label = label = tkinter.Label(root, text="文本",
bg="pink",
fg="black",
font=("黑体", 20),
width=10,
height=8,
wraplength=100,
justify="left",
anchor="e")
label.pack()
root.mainloop()
3.button
import tkinter
import sys
def func():
print("好男人就是我,我就是狗小剩.")
root = tkinter.Tk()
root.title("Button控件")
root.geometry("300x500+150+150")
button1 = tkinter.Button(root, text="按钮", command=func, width=10, height=10)
button1.pack()
button3 = tkinter.Button(root, text="内联函数", command=lambda:print("好男人就是我,我就是狗小剩"), width=10, height=10)
button3.pack()
button2 = tkinter.Button(root, text="退出", command=root.quit())
button2.pack()
root.mainloop()
4.entry控件
import tkinter
root = tkinter.Tk()
root.title("Entry控件")
root.geometry("300x300+150+150")
e = tkinter.Variable() #entry控件的字符变量
entry = tkinter.Entry(root, textvariable=e)
entry.pack()
e.set("好男人就是我,我就是狗小剩")
root.mainloop()
5.text控件
import tkinter
root = tkinter.Tk()
root.title("Text控件")
#root.geometry("300x300+300+300")
str = '''字符串内容'''
text = tkinter.Text(root, width=30, height=4)
scroll = tkinter.Scrollbar(root)
scroll.pack(side=tkinter.RIGHT, fill=tkinter.Y)
text.pack(side=tkinter.LEFT, fill=tkinter.Y)
#滚动条关联
scroll.config(command=text.yview)
text.config(yscrollcommand=scroll.set)
text.insert(tkinter.INSERT, str)
root.mainloop()
6.控件与滑动条控件之间的关联
控件=tkinter.控件
scroll = tkinter.scrollbar(root)
控件.pack(side=tkinter.LEFT, fill=tkinter.Both)
scroll.pack(side=tkinter.RIGHT, fill=tkinter.Y)
#放置关联
scroll.config(command=控件.yview)
控件.config(yscrollcommand=scroll.set)
7.checkbox控件
import tkinter
def updata():
message = ""
if hobby1.get() ==True:
message += "1\n"
if hobby2.get() == True:
message += "2\n"
if hobby3.get() == True:
message += "3\n"
text.delete(1.0, tkinter.END)
text.insert(tkinter.INSERT, message)
root = tkinter.Tk()
root.title("checkbox")
root.geometry("300x300+150+150")
hobby1 = tkinter.BooleanVar()
check1 = tkinter.Checkbutton(root, text="1", variable=hobby1, command=updata)
check1.pack()
hobby2 = tkinter.BooleanVar()
check2 = tkinter.Checkbutton(root, text="2", variable=hobby2, command=updata)
check2.pack()
hobby3 = tkinter.BooleanVar()
check3 = tkinter.Checkbutton(root, text="3", variable=hobby3, command=updata)
check3.pack()
text = tkinter.Text(root, width=50, height=50)
text.pack()
root.mainloop()
8.listbox控件
import tkinter
root = tkinter.Tk()
root.title("listbox控件")
root.geometry("300x300+150+150")
lbv = tkinter.StringVar()
listbox = tkinter.Listbox(root, selectmode=tkinter.BROWSE, listvariable=lbv)
#SINGLE不支持鼠标移动
listbox.pack()
Girls = ["杨宁东", "韩雪", "刘诗诗", "袁泉", "古力娜扎", "佟丽娅"]
#for girl in Girls:
# listbox.insert(tkinter.END, girl)
lbv.set(Girls)
listbox.insert(tkinter.ACTIVE, "我的女神列表")
listbox.select_set(2, 4)
#listbox.delete(4)
#listbox.select_clear(3)
#print(listbox.select_includes(3))
#print(listbox.curselection())
def myPrint(event):
print(listbox.get(listbox.curselection()))
listbox.bind('<Double-Button-1>', myPrint)
root.mainloop()
9.scale控件
import tkinter
root = tkinter.Tk()
root.title("scale控件")
root.geometry("300x300+150+150")
scale = tkinter.Scale(root, from_=0, to=100, orient=tkinter.HORIZONTAL, tickinterval=100, length=200)
scale.set(20)
scale.pack()
#scale_2 = tkinter.Scale(root, from_=0, to=100, orient=tkinter.VERTICAL)
#scale_2.pack()
def showNum():
print(scale.get())
button = tkinter.Button(root, text="按钮", command=showNum)
button.pack()
root.mainloop()
10.spinbox控件
import tkinter
root = tkinter.Tk()
def update():
print(v.get())
root.title("spinbox控件")
root.geometry("300x300+150+150")
v = tkinter.StringVar()
spinbox = tkinter.Spinbox(root, from_=0, to=100, increment=5, textvariable=v, command=update)
v.set(20)
spinbox.pack()
root.mainloop()
11.菜单控件
import tkinter
import os
root = tkinter.Tk()
root.title("Menubox控件")
root.geometry("300x300+150+150")
def func():
print(v.get()+"语言")
v = tkinter.StringVar()
menubar = tkinter.Menu(root)
menubar1 = tkinter.Menu(menubar, tearoff=False)
language = ["C", "C++", "Java", "Python", "php", "JS", "退出"]
for item in language:
if item == "退出":
menubar1.add_radiobutton(label=item, command=lambda: os.system(exit()))
else:
menubar1.add_radiobutton(label=item, command=func, variable=v)
menubar1.add_separator()
menubar.add_cascade(label="语言", menu=menubar1)
menubar2 = tkinter.Menu(menubar, tearoff=False)
color = ['red', 'green', 'blue', 'black', 'white']
for item in color:
menubar2.add_command(label=item, command=func)
menubar.add_cascade(label="颜色", menu=menubar2)
root.config(menu=menubar)
root.mainloop()
menu设置规律:
menu = tkinter.Menu(root)
menubar = tkinter.Menu(menu, tearoff=False/True)
列表=['1','2','3'... ...]
for item in 列表:
menubar.add_command(label=item... ...)
menubar.separator()
menu.add_cascade(label="标题", menu=menubar)
root.config(menu=menu)