我创建了一个Button,并设置了它的回调,但是如何获得像fg
这样的按钮的属性?
from Tkinter import *
def callback(self):
tkMessageBox.showinfo("button", color)
top = Tk()
frame = Frame(top)
frame.pack()
greenbutton = Button(frame, text="Brown", fg="brown", command=callback)
greenbutton.pack( side = RIGHT )
bluebutton = Button(frame, text="Blue", fg="blue", command=callback)
bluebutton.pack( side = LEFT )
top.mainloop()
我只想点击蓝色按钮,它会告诉我它是蓝色的。
答案 0 :(得分:6)
每个小部件都有一个方法cget
,您可以使用该方法获取配置的值:
print("the foreground of bluebutton is", bluebutton.cget("fg"))
答案 1 :(得分:4)
迟了一年多,但我认为这就是要求:
import tkinter as tk
class GetWidgetAttributes:
@staticmethod
def get_attributes(widget):
widg = widget
keys = widg.keys()
for key in keys:
print("Attribute: {:<20}".format(key), end=' ')
value = widg[key]
vtype = type(value)
print('Type: {:<30} Value: {}'.format(str(vtype), value))
if __name__ == '__main__':
gw = GetWidgetAttributes()
# For Example, find all attributes of Tkinter Frame
gw.get_attributes(tk.Frame())
结果是:
Attribute: bd Type: <class 'int'> Value: 0
Attribute: borderwidth Type: <class 'int'> Value: 0
Attribute: class Type: <class 'str'> Value: Frame
Attribute: relief Type: <class 'str'> Value: flat
Attribute: background Type: <class 'str'> Value: SystemButtonFace
Attribute: bg Type: <class 'str'> Value: SystemButtonFace
Attribute: colormap Type: <class 'str'> Value:
Attribute: container Type: <class 'int'> Value: 0
Attribute: cursor Type: <class 'str'> Value:
Attribute: height Type: <class 'int'> Value: 0
Attribute: highlightbackground Type: <class 'str'> Value: SystemButtonFace
Attribute: highlightcolor Type: <class 'str'> Value: SystemWindowFrame
Attribute: highlightthickness Type: <class 'int'> Value: 0
Attribute: padx Type: <class '_tkinter.Tcl_Obj'> Value: 0
Attribute: pady Type: <class '_tkinter.Tcl_Obj'> Value: 0
Attribute: takefocus Type: <class 'str'> Value: 0
Attribute: visual Type: <class 'str'> Value:
Attribute: width Type: <class 'int'> Value: 0
Larz60p
答案 2 :(得分:0)
我想,Lellansin要求这样做:
def callback(event):
obj=event.widget
name=str(obj)
print("the foreground of %s is %s" %(name,obj.cget("fg")))