python-tkinter

支持python的常见GUI工具包:

Tkinter 使用Tk平台 很容易得到 半标准
wxpython 基于wxWindows。跨平台越来越流行
Python Win 只能在Windows上使用 使用了本机的Windows GUI功能
Java Swing 只能用于Jython 使用本机的Java GUI
PyGTK 使用GTK平台 在linux上很流行
PyQt 使用QT平台 跨平台

 

tkinter主要有以下几个控件

Label
Frame
Entry
Text
Button
Listbox
Scrollbar

注意:每个控件最后要加上pack(),否则控件是无法显示的。
1.Label
说明:标签
用法:Label(根对象,【属性列表】)
属性:
text 要显示的文本
bg 背景颜色
bd 外围3D边界的宽度
font 字体(颜色、大小)
width 控件宽度
height 控件高度

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

 

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

 

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

 

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

 

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

 

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

 

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

前景自定义

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

文本

  文本内容选项有:

       <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,表示文本显示在图片中心上方。


Label的其他参数

 

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

 

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

 

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

 

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

 
2.Frame
说明:在屏幕上创建一块矩形区域,多作为容器来布局窗体
用法:frame(根对象,【属性列表】)

3.Entry
说明:创建单行文本框
用法:创建 Entry(根对象,【属性列表】)
  绑定变量 var=StringVar() e=Entry(根对象, textvariable = var)
   获取文本框中的值 var.get()
   设置文本框中的值 var.set(item1)

4.Text
说明:向该空间内输入文本
用法:
t = Text(根对象)
插入:t.insert(mark,内容)
删除:t.delete(mark1,mark2)
其中,mark可以是行号,或者特殊标识,例如
INSERT:光标的插入点CURRENT:鼠标的当前位置所对应的字符位置
END:这个Textbuffer的最后一个字符
SEL_FIRST:选中文本域的第一个字符,如果没有选中区域则会引发异常
SEL_LAST:选中文本域的最后一个字符,如果没有选中区域则会引发异常

5.Button
说明:创建按钮
用法:Button(根对象,【属性列表】)

6.Listbox
说明:列表控件,可以含有一个或者多个文本框,可单选也可多选
用法:
创建 lb = ListBox(根对象,【属性列表】)
绑定变量 var = StringVar() lb=ListBox(根对象,listvariable=var)
得到列表中的所有值 var.get()
设置列表中的所有值 var.set((item1,item2,......))
添加:lb.insert(item)
删除:lb.delete(item,...)
绑定事件 lb.bind('<ButtonRelease-1>',函数)
获得所选中的选项 lb.get(lb.curselection())
属性:selectmode可以为BROWSE MULTIPL SINGLE

7.Scrollbar
说明:垂直滚动控件
用法:ListBox(根对象,【属性列表】



 







 
posted on 2017-10-18 10:47  执剑长老  阅读(692)  评论(0编辑  收藏  举报