2019年10月26日 / 1,623次阅读 / Last Modified 2019年10月26日
tkinter
做GUI程序,除了设置组件的各种属性外,有时还需要获取组件的属性值。比如,我们想获取某些组件当前的背景颜色,获取Label组件的text属性值等等。使用组件的cget方式,就可能搞定这个需求。
我们来看看Win系统和Ubuntu桌面系统下,默认的root窗口的背景颜色:
Win系统:
>>> import tkinter as tk
>>> root = tk.Tk()
>>> root.cget('bg')
'SystemButtonFace'
Ubuntu桌面:
>>> import tkinter as tk
>>> root = tk.Tk()
>>> root.cget('bg')
'#d9d9d9'
两个系统默认的背景色不一样哦~~
如果cget遇到tkinter组件不存在的属性,会抛出TclError异常。
我们再在Win系统中,看一个获取Button组件属性的例子:
>>> bt = tk.Button(root, text='cget test', command=None)
>>> bt.cget('text')
'cget test'
>>> bt.cget('command')
''
>>> bt.cget('font')
'TkDefaultFont'
>>> bt.pack()
>>> bt.cget('text')
'cget test'
>>> bt.cget('command')
''
>>> bt.cget('font')
'TkDefaultFont'
>>> bt.cget('bg')
'SystemButtonFace'
一个细节,不管组件有无在GUI界面上显示出来,都可以通过cget来获取属性。
其实,不使用cget也可以获取组件的各种属性:
>>> bt['font']
'TkDefaultFont'
>>> bt['bg']
'SystemButtonFace'
>>> bt['text']
'cget test'
>>> bt['font'] = ('yahei', 24, 'bold')
>>> bt['font']
'yahei 24 bold'
访问和设置tkinter组件的属性,就像是在操作一个dict对象。tkinter是python标准GUI库,使用很简单,支持最完善。
-- EOF --
本文链接:https://www.pynote.net/archives/1396
©Copyright 麦新杰 Since 2019 Python笔记