学习python的第八天笔记
43、064
GUI的Tkinter
import tkinter
tkinter.TK()#设置主窗口即为root窗口
.title('')#设置窗口名称
.Label(主窗口,需要显示的东西)#可以用于显示文本、按钮、图标等等,最为常用的。
.pack()#可以自动调节主键的位置和尺寸。
.mainloop()#主次键调用,一般是界面的最后一行代码。
.Button(主窗口名称,text=‘按钮名字’,bg=‘背景颜色’,fg=‘前景颜色’,comand=self.函数名)
.pack(side = tkinter.LEFT,padx=10,pady=10)#设置按钮的位置
44、065
PhotoImage(file="图片名称")#用于实例化图片对象。
justify=LEFT #将文字左对齐、(RIGHT)为右对齐。
例1:
from tkinter import *
root = Tk()
photo = PhotoImage(file ="背景图片名称")
theLabel = Label(
root,text="需要的文字",
justify =LEFT,#设置文字左对齐
image = photo,#设置图片
compound = CENTER,#设置文字在图片正上显示
font = ("黑体",30),#设置字体类型和大小
fg="white"#设置字体颜色
)
theLabel.pack()#自动调整窗口位置
mainloop()#自动调用主次
例2:
from tkinter import *
def callback():#修改的内容
var.set("需要修改的文字内容")
root = Tk()
#设置两个框架
frame1 = Frame(root)
frame2 = Frame(root)
var = StringVar()#字符串的变量
var.set("需要的文字內容")#设置变量的内容
theLabel = Label(
frame1,textvariable=var,#textvariable显示一个变量,而text只是显示一个字符串
justify = LEFT#设置文件对齐
)
theLabel.pack(side = LEFT)
photo = PhotoImage(file ="背景图片名称")
imgLabel = Label(frame1,image = photo)
imgLabel.pack(side = RIGHT)
theButton = Button(frame2,text = "按鈕名字",command = callback)#command是在按鈕按下去后调用函数的方法。
theButton.pack()
frame1.pack(padx=10,pady=10)
frame2.pack(padx=10,pady=10)
mainloop()#自动调用主次
44、065
Checkbutton为打钩选择,用法需要设置IntVar(数字变量)
例如:
from tkinter import *
root =Tk()
v = IntVar()
c = Checkbutton(root,text="选项名字",variable=v)
c.pack(anchor=w)#设置按钮的方向
mainloop()
设置单点选项只要在 Checkbutton(root,text="选项名字",variable=v)多加上一个value的值才行,而且value的值不能够相同。
例如:
from tkinter import *
root =Tk()
v = IntVar()
Checkbutton(root,text="1",variable=v,value = 1).pack(anchor=w)
Checkbutton(root,text="2",variable=v,value = 2).pack(anchor=w)
Checkbutton(root,text="3",variable=v,value = 3).pack(anchor=w)
mainloop()
LabelFrame#可以将按钮分类
例如:
from tkinter import *
root =Tk()
group = LabelFrame(root,text="你喜欢的女明星是?",padx = 5,pady = 5)
group.pack(padx = 10,pady = 10)
GIRL = [("迪丽热巴",1),("杨幂",2),("冯提莫",3)]
v = IntVar()
v.set(1)#设置默认选项为1
for girl,num in GIRL:#将列表中的分别读取出来并设定成选项。
b = Radiobutton(group,text = girl,variable = v,value = num)
b.pack(anchor=W)
mainloop()
45、066
输入框(Entry)
.delete(0,END)#用于删除输入框中的内容。
.insert(0,"默认文本。。。")#用于插入文本。
例如:
from tkinter import *
root =Tk()
Label(root,text = "作品:").grid(row=0,column=0)#设置Label标注的位置,用grid将标注放入第零行,第零列中
Label(root,text = "作者:").grid(row=1,column=0)#设置Label标注的位置,用grid将标注放入第一行,第零列中
#添加两个文本框
e1 = Entry(root)
e2 = Entry(root)
e1.grid(row=0,column=1,padx=10,pady=0)
e2.grid(row=1,column=1,padx=10,pady=5)
def show():
print("作品:《%s》"% e1.get())
print("作者:%s"% e2.get())
#添加两个按钮
Button(root,text="获取信息",width=10,command = show).grid(row = 3,column=0,sticky=W,padx = 10,pady = 5)#设置按钮位置,用sticky设置按钮所靠近的位置,EWSN(东西南北)
Button(root,text="退出",width=10,command = root.quit).grid(row = 3,column=1,sticky=E,padx = 10,pady = 5)
mainloop()
想要将密码显示为*号,则只要文本框里添加个show=“需要显示的东西”
例如:
上面代码添加个变量
v1=StringVar()
v2=StringVar()
e1 = Entry(root,textvariable = v1)
e2 = Entry(root,textvaeiable = v2,show="*")#将输入的内容都用*号表示。
e1.grid(row=0,column=1,padx=10,pady=0)
e2.grid(row=1,column=1,padx=10,pady=5)
#验证方法
validate="focusout"#当Entry主键失去焦点时验证这个文本框,(focus)当主键获得或失去焦点时验证、(focusin)当主键获得焦点时验证、(key)当输入框被编辑时验证
(all)当出现任何一种情况时验证、(none)关闭验证功能
validatecommand=函数名#用于调用验证函数
stare=“readonly”#只能拷贝不能修改
45,066
Listbox()#用于显示多个选项的时候。
在Listbox()组件中,selectmode可以改变Listbox的模式,(SINGLE)为单选,(BROWSE)为单选,但拖动鼠标就可以改变选项,(MULTIOLE)多选,(EXTENDED)为多选,但需要同时
按住Shift键或者是Ctrl键才可以拖动,默认是BROWSE。
height可以修改Listbox的高度
Scrollbar()#滚动条
例如:
from tkinter import *
root = Tk()
s = Scrollbar(root)
s.pack(side = RIGHT,fill = Y)#填充在主界面y轴上
lb = Listbox(root,yscrollcommand=s.set)#当在Listbox内用鼠标滚动时会调用滚动调一起滚动
for i in range(1000):
lb.insert(END,i)
lb.pack(side=LEFT,fill=BOTH)
s.config(command = lb.yview)#滚动条通过yview来调整Listbox中显示的内容,由python内部自动调整。
mainloop()
#Scale组件
Scale(from_=0,to = 42)#用于设置范围
orient#用于设置Scale的方向是水平还是垂直的
tickinterval#用于设置刻度
resolution #用于设置精度
length#用于设置像素的长度