组件的布局

  • tkinter组件
  • 标准属性
  • Label组件
  • Button组件
  • 单行文本框Entry和多行文本框Text
  • 创建和显示Entry对象
  • 获取Entry组件的内容
  • Entry的常用属性
  • 参考文献


tkinter组件

Tkinter组件

组件

描述

Button

按钮控件:在程序中显示按钮

Canvas

画布控件:显示图形元素,如:线条或文本

Checkbutton

多选框控件:用于在程序中提供多项选择框

Entry

输入空间:用于显示简单的文本内容

Frame

框架控件:可以显示文本和位图

Label

标签控件:可以显示文本位图

Listbox

列表框控件:Listbox窗口小部件,用来显示一个字符串列表给用户

Menubutton

菜单按钮控件:用于显示菜单项

Menu

菜单空间:显示菜单栏、下拉菜单和弹出菜单

Message

消息控件:用来显示多行文本与Label比较类似

Radiobutton

单选按钮控件:显示一个单选按钮的状态

Scale

范围控件:显示一个数值刻度,为输出限定范围的数字区间

Scrollbar

滚动条控件,当内容超过可视化区域时使用

Text

文本空间,用于显示多行文本

Toplevel

容器控件,用来提供一个单独的对话框,与Frame比较类似

Spinbox

输入控件:与Entry类似,但是可以包含一个或者多个控件

PanelWindow

窗口布局管理的插件:可以包含一个或者多个子控件

LabelFrame

简单的答题控件:常用与复杂的窗口布局

tkMessageBox

用于显示应用程序的消息框

标准属性

组件的标准属性就是所有组件的共同属性。

属性

描述

dimension

控件大小

color

控件颜色

font

控件字体

anchor

锚点(内容停靠位置),对应于东南西北以及四个角

relief

控件样式

bitmap

位图

cursor

光标

text

显示文本内容

state

设置组价状态,正常(normal)、激活(active)、禁用(disabled)

Label组件

label组件常用的属性

属性

说明

width

宽度

height

高度

compound

指定文本与图像如何在Label上显示,默认为None。当指定image/bitmap时,文本(text)将被覆盖,只显示图像。可以使用的值如下:left,图像居左;right,图像居右;top,图像居上;bottom,图像居下;center,文字覆盖于图像之上

wraplength

指定多少单位后开始换行,用于多行显示文本

justify

指定多行的对齐方式,可以使用的值为left(左对齐)或right(右对齐)

anchor

指定文本或图像在label中的显示位置。对应于东南西北四个角,可用值如下:e,w,n,s,ne,se,sw,nw,center(默认值)

image和bm

显示自定义图片,如:png,tif

bitmap

显示内置的位图

Button组件

按钮可以包含文本或图像,可以通过command属性将调用的python函数或方法关联到按钮上。该按钮可以只显示一个单一字体的文本,但文本可能跨越一个以上的行。此外一个字符可以有下画线。
Tkinter Button组件属性

属性

功能描述

text

显示文本内容

command

指定Button的时间处理函数

compound

置顶文本与图像的位置关系

bitmap

指定位图

focus_set

设置当前组件得到的焦点

master

代表父窗口

bg

代表背景窗口

fg

设置前景颜色

font

设置字体

height

设置显示高度,如果未设置此项,其大小以适应内容标签为宜

wraplength

将此选项设置为所需的数量限制每行的字符数,默认为0

state

设置组件状态:正常(normal),激活(active),禁用(disabled)

anchor

设置Button文本在控件上的显示位置,可用值:n(north),s(south),w(west),e(east),ne,we,se,sw

textvariable

设置Button可变的文本内容对应变量

Tkinter Button组件方法

方法

描述

flash()

按钮在active color and normal color颜色之间闪烁几次,disabled表示状态无效

invoke()

调用按钮command指定的回调函数

def callback():
    showinfo("Python command", "人生苦短,我用Python")

root = Tk()
root.title("Button Test")
Button(root, text="外观装饰边界附近的标签", width=19, relief=GROOVE, bg="red").pack()
Button(root, text="设置按钮状态", width=21, state=DISABLED).pack()
Button(root, text="设置bitmap放到按钮左边位置", compound="left", bitmap="error").pack()
Button(root, text="设置command事件调用命令", fg="blue", bd=2, width=28, command=callback()).pack()
Button(root, text="设置高度及宽度以及文字显示位置", anchor='sw', width=30, height=2).pack()
root.mainloop()

单行文本框Entry和多行文本框Text

Entry主要用于输入单行内容和显示文本。

创建和显示Entry对象

创建Entry对象的基本方法如下:
Entry对象=Entry(windows窗口对象)

获取Entry组件的内容

其中get()方法用于获取单行文本框内输入的内容。

Entry的常用属性

属性

用法

show

如果设置为字符*,则输入文本框内显示为*,用于密码输入

insertbackground

插入光标的颜色,默认为黑色

selectbackground和selectforeground

选中文本的背景色与前景色

width

组件的宽度(所占的字符数)

fg

字体的前景颜色

bg

背景颜色

state

设置组件状态,默认为normal,可设置为disabled(禁用组件),readonly(只读)。

设置或者获取Entry组件内容也可以使用StringVar()对象来完成,把Entry的textvariable属性设置为StringVar()变量,再通过StringVar()变量的get()和set()函数可以读取和输出相应文本内容。

import tkinter as tk
root = tk.Tk()
s = tk.StringVar()
s.set('大家好,这是测试')
entryCd = tk.Entry(root, textvariable=s)
entryCd.pack()
print(s.get())
root.mainloop()
参考文献

夏敏捷等. python程序设计从基础开发到数据设计. 清华大学出版社,2019.