Tkinter中Widget配置

Posted wanlifeipeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tkinter中Widget配置相关的知识,希望对你有一定的参考价值。

通过设置属性来改变Widget的外观

常见的属性包括text(显示的文字) 、color(前景色和背景色)、size(宽度和高度)、 command callbacks(点击后的回调函数)等等

1.设置属性,有3种方式:

1)在创建Widget时,通过关键字参数设定

widgetclass(master, option=value, …) => widget

实例:

# coding=utf-8
from Tkinter import *


def touch():
    print \'button clicked\'


root = Tk()
btn = Button(root, text="Touch me", fg="red", bg="blue", command=touch)  # 指定显示的文本,前景色,背景色,点击后的回调函数
btn.pack()
root.mainloop()

 

2) 在对象创建完毕后,通过类似字典的方式,以属性为key,进行访问修改

# coding=utf-8
from Tkinter import *


def touch():
    print \'button clicked\'


root = Tk()
btn = Button(root, text="Touch me")
btn["fg"] = "red"
btn["bg"] = "blue"
btn["command"] = touch
btn.pack()
root.mainloop()

 

3)对象创建完毕后,调用config函数

# coding=utf-8
from Tkinter import *


def touch():
    print \'button clicked\'


root = Tk()
btn = Button(root, text="Touch me")
btn.config(fg="red", bg="blue", command=touch)  #调用config函数,设置属性
btn.pack()
root.mainloop()

 

2.获取属性以及属性对应的值

获取属性: 调用Widget的keys()方法

同时获取属性以及对应的值: 调用Widget对应的无参config()方法

# coding=utf-8
from Tkinter import *

root = Tk()
btn = Button(root, text="Touch me")
print btn.keys()  # 只获取Button实例属性
print btn.config()  # 获取Button实例的属性和值
btn.pack()
root.mainloop()

输出:

[\'activebackground\', \'activeforeground\', \'anchor\', \'background\', \'bd\', \'bg\', \'bitmap\', \'borderwidth\', \'command\', \'compound\', \'cursor\', \'default\', \'disabledforeground\', \'fg\', \'font\', \'foreground\', \'height\', \'highlightbackground\', \'highlightcolor\', \'highlightthickness\', \'image\', \'justify\', \'overrelief\', \'padx\', \'pady\', \'relief\', \'repeatdelay\', \'repeatinterval\', \'state\', \'takefocus\', \'text\', \'textvariable\', \'underline\', \'width\', \'wraplength\']
{\'highlightthickness\': (\'highlightthickness\', \'highlightThickness\', \'HighlightThickness\', <pixel object at 02325330>, <pixel object at 02325330>), \'text\': (\'text\', \'text\', \'Text\', \'\', \'Touch me\'), \'image\': (\'image\', \'image\', \'Image\', \'\', \'\'), \'compound\': (\'compound\', \'compound\', \'Compound\', <index object at 03045250>, \'none\'), \'height\': (\'height\', \'height\', \'Height\', 0, 0), \'borderwidth\': (\'borderwidth\', \'borderWidth\', \'BorderWidth\', <pixel object at 023253C0>, <pixel object at 023253C0>), \'pady\': (\'pady\', \'padY\', \'Pad\', <pixel object at 023254F8>, <pixel object at 023254F8>), \'padx\': (\'padx\', \'padX\', \'Pad\', <pixel object at 023253D8>, <pixel object at 023253D8>), \'font\': (\'font\', \'font\', \'Font\', <font object at 0230DEB8>, \'TkDefaultFont\'), \'activeforeground\': (\'activeforeground\', \'activeForeground\', \'Background\', <color object at 02301EE8>, \'SystemButtonText\'), \'activebackground\': (\'activebackground\', \'activeBackground\', \'Foreground\', <border object at 02302398>, \'SystemButtonFace\'), \'underline\': (\'underline\', \'underline\', \'Underline\', -1, -1), \'width\': (\'width\', \'width\', \'Width\', 0, 0), \'state\': (\'state\', \'state\', \'State\', <index object at 02325378>, \'normal\'), \'highlightcolor\': (\'highlightcolor\', \'highlightColor\', \'HighlightColor\', <color object at 02325570>, \'SystemWindowFrame\'), \'textvariable\': (\'textvariable\', \'textVariable\', \'Variable\', \'\', \'\'), \'overrelief\': (\'overrelief\', \'overRelief\', \'OverRelief\', \'\', \'\'), \'takefocus\': (\'takefocus\', \'takeFocus\', \'TakeFocus\', \'\', \'\'), \'bd\': (\'bd\', \'-borderwidth\'), \'foreground\': (\'foreground\', \'foreground\', \'Foreground\', <color object at 03047630>, \'SystemButtonText\'), \'bg\': (\'bg\', \'-background\'), \'repeatinterval\': (\'repeatinterval\', \'repeatInterval\', \'RepeatInterval\', 0, 0), \'repeatdelay\': (\'repeatdelay\', \'repeatDelay\', \'RepeatDelay\', 0, 0), \'background\': (\'background\', \'background\', \'Background\', <border object at 022BE118>, \'SystemButtonFace\'), \'fg\': (\'fg\', \'-foreground\'), \'bitmap\': (\'bitmap\', \'bitmap\', \'Bitmap\', \'\', \'\'), \'highlightbackground\': (\'highlightbackground\', \'highlightBackground\', \'HighlightBackground\', <border object at 02325390>, \'SystemButtonFace\'), \'disabledforeground\': (\'disabledforeground\', \'disabledForeground\', \'DisabledForeground\', <color object at 0230DA50>, \'SystemDisabledText\'), \'wraplength\': (\'wraplength\', \'wrapLength\', \'WrapLength\', <pixel object at 023252D0>, <pixel object at 023252D0>), \'default\': (\'default\', \'default\', \'Default\', <index object at 0230DFF0>, \'disabled\'), \'cursor\': (\'cursor\', \'cursor\', \'Cursor\', \'\', \'\'), \'command\': (\'command\', \'command\', \'Command\', \'\', \'\'), \'relief\': (\'relief\', \'relief\', \'Relief\', <index object at 02325420>, \'raised\'), \'anchor\': (\'anchor\', \'anchor\', \'Anchor\', <index object at 02301D68>, \'center\'), \'justify\': (\'justify\', \'justify\', \'Justify\', <index object at 02325348>, \'center\')}

备注: keys()方法中并没有包含name属性,因为name属性只能在Widget对象创建的时候指定。

因此通过btn[\'name\'] = \'ok\' 的形式指定‘name’属性

 

以上是关于Tkinter中Widget配置的主要内容,如果未能解决你的问题,请参考以下文章

为啥当我使用 tkinter 配置选项时这个标签没有改变

tkinter学习三

是否可以在 Tkinter 中获取小部件设置?

如何从widget的函数返回值,并将其传递给Tkinter,Python中的另一个小部件的函数

无法从tkinter widget.after函数传递参数

tkinter text widget 第一节