主要是使用"config()"方法来体现函数式、模块化的美好风景。把需随时要修改的控件参数定义在“config()”方法里且把它封装在一个函数中,这时只需对这函数内的“config()”方法作出相应的修改即可,无需对主代码或全部代码重新修一遍。这也是Python或高级编程语言的模块化、对象化、函数化主要思想之一。
其余笔记:【Python图形界面(GUI)Tkinter笔记(总目录)】
附事例源码:
'''
#【config()方法】:可通过"config()"方法去设置或重新设置或动态设置控件的一些参数。
# 控件对象.cofig(控件对象的参数1,控件对象的参数2,......)
import tkinter as tk
import random
def config_label(widget_set):
‘’‘设置标签属性的函数’‘’
m = random.randint(0,3) # 取一个0到3之间的随机整数
colors =['blue','red','green','yellow'] # 创建一个背景或前景的颜色列表
bg_color = colors[m] # 随机取颜色列表作为背景颜色
# 此例是把背景、前景、宽度、高度、字体等这些要统一且作相同设置的控件的都调用此函数
# 通过"config()"方法去设置或重新设置或动态设置控件的一些参数。
widget_set.config(bg=bg_color,fg='black',height=1,width=6,font="Simsun 12 bold")
# 主体代码
RootWin = tk.Tk()
RootWin.geometry("%dx%d+%d+%d"%(660,260,100,100))
RootWin.title("用【Label()】方法制作九九乘数表!")
for i in range(1,10):
for j in range(1,i+1):
# 相同的设置可通过上面函数的“config()”方法批量设置无需逐一写。
# 如果当控件比较多时且设置都是统一的,那么选择函数模块形式更有效率,要修改统一设置时只才有只需修改函数部分即可。
# 这个设置方法有点象一些软件中更改主题界面的感觉。
MathExp = f"{i}X{j}={i*j}"
# 在控件对象中设置不统一且无规律的参数
Label_1 = tk.Label(RootWin,text=MathExp,relief='ridge')
# 批量设置,先控件对象作为实参传进函数中设置,然后再包装定位控件
config_label(Label_1)
Label_1.grid(row=i,column=j,ipadx=6,ipady=3)
RootWin.mainloop()
【运行的结果,每运行一次每个式子的背景色都不一定一样】