获取tkinter组件的属性

2019年10月26日 / 9次阅读 / 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

留言区

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More

麦新杰的Python笔记

Ctrl+D 收藏本页


©Copyright 麦新杰 Since 2019 Python笔记

go to top