四、功能按钮Button

2020-07-06  本文已影响0人  蝉时雨丶

功能按钮基本概念

功能按钮也可称作按钮,在窗口组件中可以设计在单击功能按钮时,执行某一个特定的动作,这个动作
也称为callback方法,也就是说我们可以将功能按钮当作用户与程序间沟通的桥梁。功能按钮上面可以
有文字,或是和标签一样可以有图像,如果是文字样式的功能按钮,可以设定此文字的字形。

它的语法格式如下。
Button(父对象,options,···)

Button()方法的第一个参数是父对象,表示这个功能按钮将建立在哪一个窗口内。下列是Button()方法内
其他常用的options参数。

(1)borderwidth或bd:边界宽度,默认是两个像素。
(2)bg或background:背景色彩。
(3)command:单击功能按钮时,执行此方法。
(4)cursor:当鼠标光标移至按钮上时的形状。
(5)fg或foreground:前景色彩。
(6)font:字形。
(7)height:高,单位是字符高。
(8)highlihtbackground:当功能按钮取得焦点时的背景颜色。
(9)hightlightcolor:当功能按钮取得焦点时的颜色。
(10)imange:功能钮上的图像。
(11)justfy:当有多行文字时,最后一行文字的对齐方式。
(12)padx:默认是1,可设置功能按钮与文字的间隔。
(13)pady:默认是1,可设置功能按钮的上下间距。
(14)relief:默认是relief=FLAT,可由此控制文字外框。
(15)state:默认是state=NORMAL,若设置DISABLE则以灰阶显示功能按钮,表示暂时无法使用。
(16)text:功能按钮名称。
(17)underline:可以设置第几个文字有下划线,从0开始算起,默认是-1表示无下划线。
(18)width:宽,单位是字符宽。
(19)wraplenght:限制每行的文字数,默认是0,表示只有"\n"才会换行。

样例:当单击功能按钮时可以显示字符串"I love Python",底色是浅黄色,字符串颜色是蓝色。

>>> from tkinter import *
>>> def msgShow():
    label["text"]="I love Python"
    label["bg"]="lightyellow"
    label["fg"]="blue"

    
>>> root=Tk()
>>> root.title("ch4_1")
''
>>> label=Label(root)
>>> btn=Button(root,text="打印消息",command=msgShow)
>>> label.pack()
>>> btn.pack()
>>> root.mainloop()

上述程序的运行方式是在程序执行时建立了一个不含属性的标签对象label,第12行建立一个功能按钮。
单击"打印消息"时,会启动msgShow函数,然后此函数会执行设置标签对象label的内容。

也可以使用config()方法一次设置所有的Widget控件属性。

>>> from tkinter import *
>>> def msgShow():
    label.config(text="I love Python",bg="lightyellow",fg="blue")   
>>> root=Tk()
>>> root.title("ch4_2")
''
>>> label=Label(root)
>>> btn=Button(root,text="打印消息",command=msgShow)
>>> label.pack()
>>> btn.pack()
>>> root.mainloop()

增加单击"按钮结束",用于关闭窗口。

>>> from tkinter import *
>>> def msgShow():
    label.config(text="I love Python",bg="lightyellow",fg="blue")   
>>> root=Tk()
>>> root.title("ch4_2")
''
>>> label=Label(root)
>>> btn1=Button(root,text="打印消息",width=15,command=msgShow)
>>> btn1=Button(root,text="结束",width=15,command=root.destroy)
>>> label.pack()
>>> btn1.pack(side=LEFT)
>>> btn2.pack(side=LEFT)
>>> root.mainloop()

使用Lambda表达式

可以通过Lambda表达式调用相同的方法,但是传递不同参数的方式简化设计。

>>> from tkinter import *
>>> def bColor(bgColor):
    root.config(bg=bgColor)

    
>>> root=Tk()
>>> root.title("ch4_5")
>>> root.geometry("300x200")
''
>>> exitbtn=Button(root,text="Exit",command=root.destroy)
>>> bluebtn=Button(root,text="Blue",command=lambda:bColor("blue"))
>>> yellowbtn=Button(root,text="Yellow",command=lambda:bColor("Yellow"))
>>> exitbtn.pack(anchor=S,side=RIGHT,padx=5,pady=5)
>>> bluebtn.pack(anchor=S,side=RIGHT,padx=5,pady=5)
>>> yellowbtn.pack(anchor=S,side=RIGHT,padx=5,pady=5)
>>> root.mainloop()

建立含图像的功能按钮

一般功能按钮是用文字当作按钮名称,也可以用图像当作按钮名称。若是使用图像当作按钮,
在Button()内可以省略text参数设置按钮名称,但是在Button()内要增加image参数设置图像
对象。

from tkinter import *

def msgShow():
    label.config(text="I love Python",bg="lightyellow",fg="blue")

root=Tk()
root.tile("ch4_6")
label = Label(root)

sunGif=PhotoImage(file="sun.gif")
btn=Button(root,image=sunGif,command=msgShow)
label.pack()
btn.pack()

root.mainloop()

在设计功能按钮时,若是想要让图像和文字并存在功能按钮内,需要在Button()内增加参数"compund=xx"。
其中,xx可以是LEFT、TOP、RIGHT、BOTTOM、CENTER,分别代表图形在文字的左、上、右、下、中央。

建立含图像的功能按钮

一般功能按钮是用文字当作按钮名称,也可以用图像当作按钮名称。若是使用图像当作按钮,
在Button()内可以省略text参数设置按钮名称,但是在Button()内要增加image参数设置图像
对象。

from tkinter import *

def msgShow():
    label.config(text="I love Python",bg="lightyellow",fg="blue")

root=Tk()
root.tile("ch4_11")
label = Label(root)

sunGif=PhotoImage(file="sun.gif")
btn=Button(root,image=sunGif,command=msgShow,cursor="start")
label.pack()
btn.pack()

root.mainloop()

在设计功能按钮时,若是想要让图像和文字并存在功能按钮内,需要在Button()内增加参数"compund=xx"。
其中,xx可以是LEFT、TOP、RIGHT、BOTTOM、CENTER,分别代表图形在文字的左、上、右、下、中央。

上一篇 下一篇

猜你喜欢

热点阅读