[译][Tkinter 教程02] Message 控件
2017-11-30 本文已影响0人
_Lyux
原系列地址: Python Tkinter
Message 控件
Message 控件用来展示一些文字短消息. Message 和 Label 控件有些类似, 但在展示文字方面比 Label 要灵活, 比如 Message 控件可以改变字体, 而 Label 控件只能使用一种字体. 它提供了一个换行对象, 以使文字可以断为多行. 它可以支持文字的自动换行及对齐. 这里要澄清一下前面提到的 Message 控件可以改变字体的说法: 这是说我们可以为单个控件设置任意字体, 控件内的文字都将显示为该字体. 但我们不能给单个控件内的文字设置多种字体. 如果你需要这么做, 可以考虑使用 Text 控件.
创建一个 Message 控件的语法如下:
w = Message ( master, option, ... )
下面是一个小例子, 我们用 Message 控件展示了一条甘地的名言:
from Tkinter import *
master = Tk()
whatever_you_do = "Whatever you do will be insignificant, but it is very important that you do it.\n(Mahatma Gandhi)"
msg = Message(master, text = whatever_you_do)
msg.config(bg='lightgreen', font=('times', 24, 'italic'))
msg.pack( )
mainloop( )
上面的例子运行后显示如下:
如果要在 Python3 中运行上述脚本, 就需要修改一下 import 语句. 之前我们这样写:
from Tkinter import *
在 Python3 中需要这样写:
from tkinter import *
常用属性
属性名称 | 属性含义 |
---|---|
anchor | 指示文字会被放在控件的什么位置, 可选项有 N, NE, E, SE, S, SW, W, NW, CENTER. 默认为 CENTER. |
aspect | 控件的宽高比, 即 width/height , 以百分比形式表示. 默认为 150, 即 Message 控件宽度比其高度大 50%. 注意: 如果显式的指定了控件宽度, 则该属性将被忽略. |
background | 控件的背景色. 默认值为当前窗口系统的默认背景色. |
bg | 同 background. |
borderwidth | 边框宽度. 默认为2. |
bd | 同 borderwidth. |
cursor | 定义鼠标移动到 Message 上时的光标样式. 默认为系统标准样式. |
font | 文字字体. 默认为当前系统默认. |
foreground | 文字颜色. 默认为当前系统默认. |
fg | 同 foreground |
highlightbackground | 和 highlightcolor, highlightthickness 这两个属性一起指定了控件如何绘制高亮区域. |
highlightcolor | 参考 highlightbackground. |
highlightthickness | 参考 highlightbackground. |
justify | 指示多行文本如何对齐. 可选项为 LEFT, RIGHT, CENTER. 默认为 LEFT. 注意: 该属性指示文字对齐方式. 如果要指定文字在控件内的位置, 请使用 anchor 属性. |
padx | 水平方向的边距. 默认为 -1, 即无边距. |
pady | 垂直方向的边距. 默认为 -1, 即无边距. |
relief | 边框样式. 默认为 FLAT. 其他可选项为 SUNKEN, RAISED, GROOVE, RIDGE. |
takefocus | 如果设置为 True, 控件将可以获取焦点. 默认为 False. |
text | 文字内容. 控件将根据宽度自动对文字进行断行. |
textvariable | 关联一个 Tkinter variable 对象, 通常为 StringVar 对象. 控件文本将在该对象改变时跟着改变. |
width | 控件宽度, 单位为 charater units (不是像素). 如果未指定该选项, 将根据 aspect 属性自动设置宽度. |
译者水平有限, 如有疏漏, 欢迎指正.
已获得原作者授权. 原文地址: Message Widget