It'd be awesome if I could get something like the below.
Pseudo Code:
U = widget1.SettingsGet()
Print U
Upon printing U something like this would be returned:
widget1(background='green',foreground='grey',boarderwidth=10, relief='flat')
It would be really useful to be able to get a widgets settings. So that I can manipulate other widgets accordingly.
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 pprint
from 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.