zoukankan      html  css  js  c++  java
  • Python中TKinter模块中的Label组件

    Python2.7.4      OS—W7x86
    1. 简介

      Label用于在指定的窗口中显示文本和图像。最终呈现出的Label是由背景和前景叠加构成的内容。

      Label组件定义函数:Label(master=None, cnf={}, **kw) 其中,kw参数是用来自定义lable组件的键值对。

    2.  背景自定义

      背景的话,有三部分构成:内容区+填充区+边框

      <1>内容区参数有:width,length用于指定区域大小,如果显示前景内容是文本,则以单个字符大小为单位;如果显示的是图像,则以像素为单位。默认值是根据具体显示的内容动态调整。类型是int。

                      background用于指定背景的颜色,默认值根据系统而定。

      <2>填充区参数:指的是内容区和边框之间的间隔大小,单位是像素。参数有:padx , pady,类型是int。

      <3>边框参数:样式relief(可选值为:flat(默认),sunken,raised,groove,ridge),borderwidth(边框的宽度,单位是像素,默认根据系统而定,一般是1或2像素)

                                 highlightbackground,highlightcolor,highlightthickness 三个边框参数仅在Label允许接收焦点的情况下(tackfocus=True),用于设置焦点获取前后高亮边框颜色以及高亮边框宽度。

      举个栗子(@-@)

       

      上图右侧为,背景图构成:内容区(黑色),填充区(绿色),边框(黄色)

      定义的背景内容区是可容纳3X9的字符区,如上图中的右侧小窗口中的Label。增加了填充区和边框后的效果如上图中左侧的Label。

    3.  前景自定义

      前景定义分为文本内容图像两小块来说明。

    3.1 文本

      文本内容选项有:<1>指定字体和字体大小,如:font = (font_name,size),默认有系统指定。

                                   <2>文本对齐方式justify = "center(默认)left/right/"

                                   <3>指定文本(或图像)颜色foreground = "指定的颜色",可以是英文名字,也可以是RGB格式的

                                   <4>指定文本内容:(静态的)text = "目标字符串.....";  (动态更新的)textvariable = str_obj,当str_obg的内容改变时,会更新Label中对应内容。

                                          这里需要注意的是str_obj必须是TKinter所支持的字符串类型变量,如:str_obj = Tkinter.StringVar()      str_obj.set("目标文本内容")

                                   <5>单个字符添加下划线underline = index, index是目标字符串中的字符索引值。

                                   <6>文本或图像在背景内容区的位置:anchor  可选值为(n,s,w,e,ne,nw,sw,se,center)eswn是东南西北英文的首字母,表示:上北下南左西右东

                                    

      图像内容选项有:<1>指定图片:bitmap = bitmap_image,当指定image选项的时候,这个参数会被忽略掉     或者  image = normal_image(仅支持GIF, PPM/PGM格式的图片)" 。

                                           需要注意的是这里的所用到的图片对象bitmap_image  normal_image都是需要经过TKinter转换后的图像格式。

                                           如: bitmap_image = TKinter.BitmapImage(file = "位图片路径")

                                                  normal_image = TKinter.PhotoImage(file = "gif 、ppm/pgm图片路径")

      图片和文本取舍:compound参数可以控制要显示的文本和图像。当同时指明了要显示的文本和图像时,可以通过该参数来进行不同设置。

                                   可选值:None 默认值,表示只显示图像,不显示文本;bottom/top/left/right,表示图片显示在文本的下/上/左/右;center,表示文本显示在图片中心上方。

                                    

                               上图左中的compound="bottom",表示图片显示在文字下方;上图左中的compound="center",表示文字显示在图片中间上方

     4. Label的其他参数

      <1>activebacakground  activeforground   用于设置Label处于活动(active)状态下的背景和前景颜色,默认由系统指定。

      <2>diableforground  指定当Label不可用的状态(Disable)下的前景颜色,默认由系统指定。

      <3>cursor 指定鼠标经过Label的时候,鼠标的样式,默认由系统指定。

      <4>state  指定Label的状态,用于控制Label如何显示。可选值有:normal(默认)/active/disable。

    程序源码

    #coding=utf-8
    import Tkinter as tk
    
    if __name__ == "__main__":
        import Tkinter as tk
        master = tk.Tk()
        str_obj = tk.StringVar()
        str_obj.set("这是TKinter所支持的字符串类型")
    
        #bitmap_image = tk.BitmapImage(file = "./tmp/11.bmp")
        normal_image = tk.PhotoImage(file = "./tmp/11.gif")
        print type(normal_image)
        print normal_image
        w = tk.Label(master,
                     #背景选项
                     #height = 5,
                     #width = 20,
                     padx=10,
                     pady=20,
                     background="blue",
                     relief="ridge",
                     borderwidth=10,
                     #文本
                     text = "123456789
    abcde
    ABCDEFG",
                     #textvariable = str_obj,
                     justify = "left",
                     foreground = "white",
                     underline = 4,
                     anchor = "ne",
                     #图像
                     image = normal_image,
                     compound = "bottom",
                     #接受焦点
                     #takefocus = True,
                     #highlightbackground = "yellow",
                     #highlightcolor = "white",
                     #highlightthickness = 5
                     )
        w.pack()
        master.mainloop()
    

    参考来源:http://bbs.fishc.com/forum.php?mod=viewthread&tid=59087&extra=page%3D1%26filter%3Dtypeid%26typeid%3D604

          

  • 相关阅读:
    Java多线程——volatile关键字、发布和逸出
    线程安全性的基础知识
    maven web不能创建src/main/java等文件等问题
    web环境中的spring MVC
    Spring AOP 概述
    golang统计出其中英文字母、空格、数字和其它字符的个数
    go语言求1到100之内的质数
    golang fmt占位符
    golang---map类型
    golang切片类型
  • 原文地址:https://www.cnblogs.com/zyq-blog/p/5712926.html
Copyright © 2011-2022 走看看