Is it possible to get widget settings in Tkinter?

后端 未结 2 1733
南笙
南笙 2020-12-03 15:19

It\'d be awesome if I could get something like the below.

Pseudo Code:

U = widget1.SettingsGet()
Print U 

Upon printing U something

相关标签:
2条回答
  • 2020-12-03 15:30

    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.

    0 讨论(0)
  • 2020-12-03 15:41

    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>)}
    
    0 讨论(0)
提交回复
热议问题