Is it possible to get widget settings in Tkinter? Is it possible to get widget settings in Tkinter? tkinter tkinter

Is it possible to get widget settings in Tkinter?


If you know what settings you need, you can just use the cget method to get values e.g.

from Tkinter import *root = Tk()w = Label(root, text="Hello, world!")w.pack()print w.cget('text')root.mainloop()

It will print

Hello, world!

If you want to know all the available options, widget.config contains the config and from that if you wish you can create all or a subset of settings which you may need e.g.

import pprintfrom Tkinter import *root = Tk()w = Label(root, text="Hello, world!")w.pack()pprint.pprint(w.config())root.mainloop()

Output:

{'activebackground': ('activebackground',                      'activeBackground',                      'Foreground',                      <border object at 00C665D0>,                      'SystemButtonFace'), 'activeforeground': ('activeforeground',                      'activeForeground',                      'Background',                      <color object at 00C66C48>,                      'SystemButtonText'), 'anchor': ('anchor',            'anchor',            'Anchor',            <index object at 00C66588>,            'center'), 'background': ('background',                'background',                'Background',                <border object at 0119A3E0>,                'SystemButtonFace'), 'bd': ('bd', '-borderwidth'), 'bg': ('bg', '-background'), 'bitmap': ('bitmap', 'bitmap', 'Bitmap', '', ''), 'borderwidth': ('borderwidth',                 'borderWidth',                 'BorderWidth',                 <pixel object at 0119A0F8>,                 <pixel object at 0119A0F8>), 'compound': ('compound',              'compound',              'Compound',              <index object at 011A90D8>,              'none'), 'cursor': ('cursor', 'cursor', 'Cursor', '', ''), 'disabledforeground': ('disabledforeground',                        'disabledForeground',                        'DisabledForeground',                        <color object at 011A5DB0>,                        'SystemDisabledText'), 'fg': ('fg', '-foreground'), 'font': ('font',          'font',          'Font',          <font object at 011A5E40>,          (('MS', 'Sans', 'Serif'), '8')), 'foreground': ('foreground',                'foreground',                'Foreground',                <color object at 011A5F48>,                'SystemButtonText'), 'height': ('height', 'height', 'Height', 0, 0), 'highlightbackground': ('highlightbackground',                         'highlightBackground',                         'HighlightBackground',                         <border object at 011A5EE8>,                         'SystemButtonFace'), 'highlightcolor': ('highlightcolor',                    'highlightColor',                    'HighlightColor',                    <color object at 011A5F78>,                    'SystemWindowFrame'), 'highlightthickness': ('highlightthickness',                        'highlightThickness',                        'HighlightThickness',                        <pixel object at 011A5FA8>,                        <pixel object at 011A5FA8>), 'image': ('image', 'image', 'Image', '', ''), 'justify': ('justify',             'justify',             'Justify',             <index object at 011A5F30>,             'center'), 'padx': ('padx',          'padX',          'Pad',          <pixel object at 011A5FC0>,          <pixel object at 011A5FC0>), 'pady': ('pady',          'padY',          'Pad',          <pixel object at 011A5FD8>,          <pixel object at 011A5FD8>), 'relief': ('relief', 'relief', 'Relief', <index object at 011A5FF0>, 'flat'), 'state': ('state', 'state', 'State', <index object at 011A5EA0>, 'normal'), 'takefocus': ('takefocus', 'takeFocus', 'TakeFocus', '0', '0'), 'text': ('text', 'text', 'Text', '', ('Hello,', 'world!')), 'textvariable': ('textvariable', 'textVariable', 'Variable', '', ''), 'underline': ('underline', 'underline', 'Underline', -1, -1), 'width': ('width', 'width', 'Width', 0, 0), 'wraplength': ('wraplength',                'wrapLength',                'WrapLength',                <pixel object at 00C50908>,                <pixel object at 00C50908>)}


To get all attributes of a widget from cget, you can use keys() to get the attributes and then cget to get the value of those atributes. IE:

    from tkinter import *    root=Tk()    w=Button(root)    for item in w.keys():        print(item)        print(w.cget(item))

This code returns:

    activebackground    systemButtonFacePressed    activeforeground    systemPushButtonPressedText    anchor    center    background    White    bd    2    bg    White    bitmap    borderwidth    2    command    compound    none    cursor    default    disabled    disabledforeground    #a3a3a3    fg    systemButtonText    font    TkDefaultFont    foreground    systemButtonText    height    0    highlightbackground    White    highlightcolor    systemButtonFrame    highlightthickness    4    image    justify    center    overrelief    padx    12    pady    3    relief    flat    repeatdelay    0    repeatinterval    0    state    normal    takefocus    text    textvariable    underline    -1    width    0    wraplength    0

That was a lot of spaces >.<

In this block the first is the key and the second is the value of said key. The keys method (for all widgets) returns all of the keys in said widget. Config returns the keys and what they apply to (cursor vs Cursor) where keys just gives a list of all attributes.