如何获取所有配置参数的列表?

时间:2015-08-18 23:22:46

标签: user-interface python-3.x tkinter

如何获取所有配置参数列表?

from tkinter import *

from tkinter import ttk
root=Tk()
root.config(**args)
root.mainloop()

我尝试过:

help(root.config)

输出:

  

有关模块tkinter中方法配置的帮助:

     

配置(cnf = None,** kw)tkinter.Tk实例的方法   配置小部件的资源。

     

资源的值指定为关键字   参数。要了解概述   允许的关键字参数调用方法键。

2 个答案:

答案 0 :(得分:1)

如果通过“config args”表示特定小部件的所有可配置属性,您可以像这样获取它们:

my_widget.config()

换句话说,你只需要调用方法config(或configure,它只是一个别名)而不带参数,它返回一个带有属性,它们的值和_的字典。更多的小部件。

您还可以使用pprint函数(来自pprint模块)打印出很好的属性,如下例所示:

from tkinter import *
from pprint import pprint

root = Tk()
pprint(root.config())

输出如下:

{'background': ('background',
                'background',
                'Background',
                <border object: 'systemWindowBody'>,
                'systemWindowBody'),
 'bd': ('bd', '-borderwidth'),
 'bg': ('bg', '-background'),
 'borderwidth': ('borderwidth',
                 'borderWidth',
                 'BorderWidth',
                 <pixel object: '0'>,
                 0),
 'class': ('class', 'class', 'Class', 'Toplevel', 'Tk'),
 'colormap': ('colormap', 'colormap', 'Colormap', '', ''),
 'container': ('container', 'container', 'Container', 0, 0),
 'cursor': ('cursor', 'cursor', 'Cursor', '', ''),
 'height': ('height', 'height', 'Height', <pixel object: '0'>, 0),
 'highlightbackground': ('highlightbackground',
                         'highlightBackground',
                         'HighlightBackground',
                         <color object: 'systemWindowBody'>,
                         'systemWindowBody'),
 'highlightcolor': ('highlightcolor',
                    'highlightColor',
                    'HighlightColor',
                    <color object: 'Black'>,
                    'Black'),
 'highlightthickness': ('highlightthickness',
                        'highlightThickness',
                        'HighlightThickness',
                        <pixel object: '0'>,
                        0),
 'menu': ('menu', 'menu', 'Menu', '', ''),
 'padx': ('padx', 'padX', 'Pad', <pixel object: '0'>, <pixel object: '0'>),
 'pady': ('pady', 'padY', 'Pad', <pixel object: '0'>, <pixel object: '0'>),
 'relief': ('relief', 'relief', 'Relief', <index object: 'flat'>, 'flat'),
 'screen': ('screen', 'screen', 'Screen', '', ''),
 'takefocus': ('takefocus', 'takeFocus', 'TakeFocus', '0', '0'),
 'use': ('use', 'use', 'Use', '', ''),
 'visual': ('visual', 'visual', 'Visual', '', ''),
 'width': ('width', 'width', 'Width', <pixel object: '0'>, 0)}

根据effbot.orgconfig方法的文档:

  

<强> config(cnf=None, **kw)

     

修改一个或多个小部件选项。

     

如果在没有参数的情况下调用,此方法将返回包含所有窗口小部件选项的当前设置的字典。 对于字典中的每个选项键,值为五元组 (option, option database key, option database class, default value, current value)两元组 (option alias, option)。后一种情况用于bgbackground)和bdborder width等别名。

     

请注意,某些选项类型的值字段格式不正确。有关详细信息,请参阅keys方法的说明和解决方法。

答案 1 :(得分:0)

感谢@Axl的回答。

from tkinter import *

from pprint import pprint

root=Tk()

pprint(root.key())

此代码也适用于我。