【问题标题】:Is it possible to get widget settings in Tkinter?是否可以在 Tkinter 中获取小部件设置?
【发布时间】:2011-03-14 09:48:59
【问题描述】:

如果我能得到类似下面的东西,那就太棒了。

伪代码:

U = widget1.SettingsGet()
Print U 

在打印 U 时会返回类似这样的内容:

widget1(background='green',foreground='grey',boarderwidth=10, relief='flat')

能够获得小部件设置真的很有用。这样我就可以相应地操作其他小部件。

【问题讨论】:

    标签: python get settings widget tkinter


    【解决方案1】:

    如果您知道需要什么设置,您可以使用cget 方法获取值,例如

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

    它会打印出来

    Hello, world!
    

    如果您想知道所有可用选项,widget.config 包含配置,如果您希望可以创建您可能需要的全部或部分设置,例如

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

    输出:

    {'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>)}
    

    【讨论】:

      【解决方案2】:

      要从 cget 获取小部件的所有属性,您可以使用 keys() 获取属性,然后使用 cget 获取这些属性的值。即:

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

      此代码返回:

          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
      

      那是很多空格>.

      在这个块中,第一个是键,第二个是所述键的值。 keys 方法(适用于所有小部件)返回所述小部件中的所有键。 Config 返回键和它们适用的对象(光标与光标),其中键只是提供所有属性的列表。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-18
        • 1970-01-01
        • 2023-03-21
        • 2016-11-28
        • 2021-11-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多