欢迎光临
我们一起进阶

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

扫码或搜索:沉默王二
发送 290992
即可立即永久解锁本站全部文章
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.|
|orderwidth |边框宽度. 默认为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()
赞(0) 打赏
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

小白学堂,学的不止是技术,更是前程

关于我们免责声明

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏