1
已获原作者授权. 原系列地址: 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 属性自动设置宽度.

全系列:
[译][Tkinter 教程01] 入门: Label 控件
[译][Tkinter 教程02] Message 控件
[译][Tkinter 教程03] Button 控件
[译][Tkinter 教程04] Variable 类
[译][Tinkter 教程05] Radiobutton 控件
[译][Tkinter 教程06] Checkbox 控件
[译][Tkinter 教程07] Entry 控件
[译][Tkinter 教程08] Canvas 图形绘制
[译][Tkinter 教程09] Scale 控件
[译][Tkinter 教程10] Text 控件
[译][Tkinter 教程11] 对话框和消息框
[译][Tkinter 教程12] 布局管理 (Pack Place Grid)
[译][Tkinter 教程13] Mastermind 游戏
[译][Tkinter 教程14] menu 菜单
[译][Tkinter 教程15] event 事件绑定
译者水平有限, 如有疏漏, 欢迎指正.
已获得原作者授权. 原文地址: Message Widget

Lyux
571 声望328 粉丝