Python的GUI编程(十)Message(信息)

Message 控件

Message 控件用来展示一些文字短消息. Message 和 Label 控件有些类似, 但在展示文字方面比 Label 要灵活, 比如 Message 控件可以改变字体, 而 Label 控件只能使用一种字体. 它提供了一个换行对象, 以使文字可以断为多行. 它可以支持文字的自动换行及对齐. 这里要澄清一下前面提到的 Message 控件可以改变字体的说法: 这是可以为单个控件设置任意字体, 控件内的文字都将显示为该字体. 但不能给单个控件内的文字设置多种字体. 如果需要这么做, 可以考虑使用 Text 控件. 
创建一个 Message 控件的语法如下: 
w = Message ( master, option, ... ) 

常用属性

属性名称属性含义
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 属性自动设置宽度.

来源:http://blog.csdn.net/liuxu0703/article/details/60600852

1、简单示例

from Tkinter import *
root=Tk()
root.geometry('200x100')
#默认情况下会换行,设置足够大的width可显示在同一行,即使改变窗口大小也不能改变默认的换行模式
Message(root,text='hello Message',fg='red').pack()
root.mainloop()


使用aspect属性指定宽高比例

默认情况下wider/height= 1.5,可以使用aspect属性,设置为4,即宽为高的4倍,可以显示'❤'

from Tkinter import *
import time

Color=['red','yellow','blue','green','purple']
root = Tk()
for i in range(10):
    Message(root,text = '❤'*i,aspect = 400,fg=Color[i%5]).pack()

root.mainloop()

Message绑定变量

from Tkinter import *
import time

root = Tk()

Color=['red','yellow','blue','green','purple']
direction1=['left','right','center']
direction2=['top','bottom' , 'left', 'right']

v=StringVar()
#一但设置绑定变量,变量将直接覆盖text中的值
v.set('❤'*8)
for i in range(10):
    Message(root,text = 'A'*i,aspect = 400,fg=Color[i%5],textvariable=v,justify=direction1[i%3]).pack(side=direction2[i%4])

print v.get()

root.mainloop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HySmiley

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值