【python-GUI-tkinter】控件基础(3.6.2)

说明每个控件最后要加上pack().否则控件是无法显示的

1.Label标签
用法:Label(根对象,【属性列表】)
属性:
text    要显示的文本

textvariable    变量文本
bg      背景颜色
bd      外围3D边界的宽度
font    字体(颜色、大小)
width   控件宽度
height  控件高度

绑定变量 var=tkinter.StringVar()    e=Label(根对象, textvariable = var)

获取文本框中的值   var.get()
设置文本框中的值   var.set(item)


import tkinter

root=tkinter.Tk()

root.title('lesroad')# 设置窗口标题

root.geometry('500x600')# 设置窗口大小 注意:是x 不是*

root.resizable(width=1,height=0)# 设置窗口是否可以变化长/宽,False不可变,True可变,默认为True

l=tkinter.Label(root,text='hello',bg='black',fg='red',font=('Arial',24,'italic'),width=8,height=3,cursor='cross')
# 在对象中添加标签,背景,前景,字体(系列,尺寸,样式),尺寸(一个字符为1),鼠标光标形状

l.pack(side='bottom')# side=TOP或'top'都可以

root.mainloop()# 进入消息循环


【python-GUI-tkinter】控件基础(3.6.2)_第1张图片


趣味实例:

#功能:点击按钮标签显示'you hit me',再点一下消失

import tkinter

root = tkinter.Tk()

root.title('my windows')

root.geometry('300x300')

flag=0


def hit():
    global flag
    if(flag==0):
        var.set('you hit me')# var.set(value)设置值 //var.get()获取值
        flag=1
    else:
        var.set(' ')
        flag=0

var=tkinter.StringVar()# 设置var为字符串变量,或用tkinter.Variable()

l=tkinter.Label(root,textvariable=var,bg='green',width=15).pack()# 最好不要接着写pack,Entry会报错

b = tkinter.Button(root,text='hit me',command=hit).pack()

root.mainloop()

【python-GUI-tkinter】控件基础(3.6.2)_第2张图片          【python-GUI-tkinter】控件基础(3.6.2)_第3张图片


插入图片(只能gif)

photo=tkinter.PhotoImage(file=r'G:\QQ截图20170920214145.gif')
ip=tkinter.Label(root,image=photo)
ip.pack()


2.Entry输入框

e = tkinter.Entry(root.show='#') #输入的字符全为#,默认为show=None

只能设置width,没有height

绑定变量 var=tkinter.StringVar()    e=Entry(根对象, textvariable = var)

获取文本框中的值   var.get()
设置文本框中的值   var.set(item)

但是不会显示text中的内容



3.Text 文本框

没有text选项。

t = tkinter,Text(root)

t.insert(3.2,var)#在text第一行第一列后加上var

t.insert('insert',var)  #在鼠标光标所指区域加上var

t.insert('end',var)     #在最后加上var

t.delete(2,1)            #删除第二行第一列之后的一个字符


趣味实例:

#输入字符串,可以在后边加,也可以在光标后加,在text中输出字符串

import tkinter

root=tkinter.Tk()

root.title('my windows')

root.geometry('300x300')

e = tkinter.Entry(root,width=30)

e.pack()

def Insert():
    var=e.get()
    t.insert('insert',var)# 光标后加

def End():
    var=e.get()
    t.insert('end',var)# 字符串后加


b1=tkinter.Button(root,text='insert point',command=Insert)

b1.pack()

b2=tkinter.Button(root,text='insert end',command=End)

b2.pack()

t=tkinter.Text(root,width=50,height=3)

t.pack()


root.mainloop()
【python-GUI-tkinter】控件基础(3.6.2)_第4张图片                                 【python-GUI-tkinter】控件基础(3.6.2)_第5张图片

4.Listbox列表

插入insert

删除delete

趣味实例:

#输入字符串,可以在后边加,也可以在光标后加,在text中输出字符串,详见下图

import tkinter

root=tkinter.Tk()

root.title('my windows')

root.geometry('300x300')

var=tkinter.StringVar()

l=tkinter.Label(root,width=4,textvariable=var,bg='yellow')

l.pack()

def click():
    value=l.get(l.curselection())#获取光标所选
    var.set(value)

b=tkinter.Button(root,text='print selection',command=click)

b.pack()

l=tkinter.Listbox(root)

L=[11,22,33,44,1,2,3,4]

for i in L:
    l.insert('end',i)

l.insert(1,'first')

l.pack()

root.mainloop()
【python-GUI-tkinter】控件基础(3.6.2)_第6张图片 【python-GUI-tkinter】控件基础(3.6.2)_第7张图片

5.Checkbutton多选框

import tkinter
root=tkinter.Tk()
L=[
    ("a",1),
    ("b",2),
    ("c",3),
    ("d",4),
]
v=[]
for  i,j in L:
    v.append(tkinter.IntVar())
    b=tkinter.Checkbutton(root,text=i,variable=v[-1]).pack()#多选框是独立的variable

root.mainloop()



6.Radiobutton单选框

import tkinter
root=tkinter.Tk()
root.geometry("200x200")
L=[
    ("a",1),
    ("b",2),
    ("c",3),
    ("d",4),
]
v=tkinter.IntVar()
for  i,j in L:
    b=tkinter.Radiobutton(root,text=i,variable=v,value=j)#单选框共用一个variable,但是value必须不同
    b.pack(anchor='w')#左对齐,每个b都要pack
root.mainloop()



7.LabelFrame

import tkinter
root=tkinter.Tk()

root.geometry("200x200")
group = tkinter.LabelFrame(root,text="lesroad的选择是!",padx=5,pady=5)
group.pack(padx=10,pady=10)

L=[
    ("a",1),
    ("b",2),
    ("c",3),
    ("d",4),
]
v=tkinter.IntVar()
for  i,j in L:
    b=tkinter.Radiobutton(group,text=i,variable=v,value=j)#单选框共用一个variable,但是value必须不同
    b.pack(anchor='w')#左对齐,每个b都要pack//改成同一行:b.grid(row=0,column=j)
root.mainloop()
                                                        

你可能感兴趣的:(python)