Tkinter编程应知应会(6)-构建按钮控件
原创
©著作权归作者所有:来自51CTO博客作者大连木匠的原创作品,请联系作者获取转载授权,否则将追究法律责任
GUI程序中最为常见的控件就是按钮,因此接下来的控件说明从按钮开始说起。先看程序的执行结果:
代码如下,读者可以将这段代码直接拷贝并执行接口。
from tkinter import *from tkinter.font import *
root = Tk()
# create fontftTimes = Font(family='Times', size=24, weight=BOLD, slant=ITALIC)
# create a button to change state.state_button = Button(root,text="ColorButton", background="#ffffa0",foreground="#ff0000", activebackground="#a0ffa0",activeforeground="#0000ff", font=ftTimes, height=2)state_button.grid(row=0, column=0)
# change state function.def change_state(): state = state_button.cget('state') if state==DISABLED: state_button.config(state=NORMAL) elif state==NORMAL: state_button.config(state=ACTIVE) else: state_button.config(state=DISABLED)
# change state button.Button(root,text="<<ChangeState", command=change_state).grid(row=0, column=1)
# create a button with padx and pady.Button(root,text="PadButton", font=ftTimes, padx=50, pady=20).grid(row=1, column=0, columnspan=2)
# create a button with multiple line text.Button(root,text="This is a MultilineButton.", wraplength=220, font= ftTimes).grid(row=2, column=0, columnspan=2)
# run main loop.root.mainloop()
代码首先构建了一个Timer字体对象ftTimes。为了可以使用Font构建字体需要增加如第二行所示的语句以导入Tkinter中的Font类。接下来的所有按钮都会使用这个ftTimes对象。
接下来构建了一个state_button对象。这个对象分别指定了正常状态前景色和背景色,活动状态的前景色和背景色。使用鼠标点击按钮时就能看到各个属性的效果。
接下来定义了一个change_state函数,功能是改变state_button的状态。然后是构建一个修改state_button状态的按钮。之前准备的change_state函数作为这个按钮的command属性使用。当按钮按下时,change_state函数会被执行。
最下面的两个按钮没有指定动作,只是用来演示使用padx/pady扩展按钮控件和构建多行文本按钮的方法。
觉得本文有帮助?请分享给更多人。
阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】