2010-07-11 17 views
8

Aşağıdaki gibi bir şey elde edebilirsem harika olurdu.Tkinter'da widget ayarları almak mümkün mü?

Sözde Kod:

U = widget1.SettingsGet() 
Print U 

böyle U şey baskı üzerine iade edileceği:

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

bir widget ayarlarını elde edebilmek için gerçekten yararlı olacaktır. Böylece diğer widget'ları buna göre manipüle edebilirim. Tek bir sözlükte kerede ayarı ihtiyaç Neden

cevap

18

, yine o sözlüğü ayarları belirli bir ayara erişmek zorunda kalacak, bu yüzden bunun yerine sadece değerler örneğin almak için cget yöntemi kullanmak Mevcut tüm seçenekler bilmek istiyorsanız

from Tkinter import * 

root = Tk() 

w = Label(root, text="Hello, world!") 
w.pack() 
print w.cget('text') 
root.mainloop() 

O

Hello, world! 

yazdırır, widget.config yapılandırma içerir ve o size tüm ayarları veya bir alt kümesini oluşturabilir isterseniz size hangi örneğin gerekebilir

import pprint 
from Tkinter import * 

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

Çıktı:

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

cget bir widget tüm özelliklerini elde etmek için,() özelliklerini elde etmek için tuşlarını kullanarak ve ardından bu atributes değerini almak için cget edebilirsiniz. IE:

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

Bu kod döndürür: alanlarda çok> oldu

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 

. <

Bu satırda, ilk anahtardır ve ikincisi, bahsedilen anahtarın değeridir. Anahtarlar yöntemi (tüm widget'lar için), söz konusu widget'daki tüm anahtarları döndürür. Yapılandırma tuşları, anahtarların, tüm özniteliklerin bir listesini verebildiği imleçle (imleçle İmleç) ne döndürdüğünü döndürür.

İlgili konular