tkinter(一)

Tkinter

Tkinter 是使用 python 进行窗口视窗设计的模块。

Tkinter模块(“Tk 接口”)是Python的标准Tk GUI工具包的接口。

简单实例

引入tkinter
实例化tkinter对象和相关的窗口特性设置
调用tkinter的mainloop方法

mainloop方法最后执行,将标签显示在屏幕,进入等待状态(注:若组件未打包,则不会在窗口中显示),准备响应用户发起的GUI事件。

# 引入tkinter
import tkinter
# 实例化tkinter对象,创建主窗口
window = tkinter.Tk()
# 设置窗口的标题
window.title("简单实例")
# 设置窗口的大小和窗口的起始位置 window.geometry("宽度x高度+距离屏幕左边缘距离+距离屏幕上边缘距离")
window.geometry("400x200+100+20")
# 将标签显示在屏幕,进入等待状态,准备响应用户发起的GUI事件。
window.mainloop()

Tkinter15种类型部件

控件(部件) 说明
Button 用于显示应用程序中的按钮
Canvas 用于在应用程序中绘制线条,椭圆,多边形和矩形等形状
Checkbutton 用于显示多个选项作为复选框
Entry 用于显示单行文本字段 / 用于接受来自用户的值
Frame 用作容器小部件来组织其他小部件
Label 用于为其他小部件提供单行标题(可含图像)
Listbox 用于选项列表
Menubutton 用于显示应用程序中的菜单
Menu 用于向用户提供各种命令 (这些命令包含在Menubutton中)
Message 用于显示多行文本字段(以接受用户的值)
Radiobutton 用于将多个选项显示为单选按钮
Scale 用于提供滑块小部件
Scrollbar 用于向各种小部件(例如列表框)添加滚动功能
Text 用于以多行显示文本
Toplevel 用于提供单独的窗口容器

Label控件

设置好预制窗口
Label组件的实例化和其参数的设置
将label控件显示出来
调用tkinter的mainloop方法
import tkinter
window = tkinter.Tk()
window.geometry("400x400+200+200")
window.title("Label控件")
#  标签控件  label  显示文本
# tkinter.Label(窗口,显示的文本,背景,字体颜色,字体样式,
'''
label = tkinter.Label(
    window,
    text="显示的文本",
    bg="pink",
    fg="blue",
    font=("黑体",20),
    width=10,
    height=10,
    wraplength=50,
    justify="left",
    anchor="center"
)
# 将控件显示出来
label.pack()
window.mainloop()

label控件的各个参数

选项 含义
activebackground 1. 设置当 Label 处于活动状态(通过 state 选项设置状态)的背景色 2. 默认值由系统指定
activeforeground 1. 设置当 Label 处于活动状态(通过 state 选项设置状态)的前景色 2. 默认值由系统指定
anchor 1. 控制文本(或图像)在 Label 中显示的位置 2. “n”, “ne”, “e”, “se”, “s”, “sw”, “w”, “nw”, 或者 “center” 来定位(ewsn 代表东西南北,上北下南左西右东) 3. 默认值是 “center”
background 1. 设置背景颜色 2. 默认值由系统指定
bg 跟 background 一样
bitmap 1. 指定显示到 Label 上的位图 2. 如果指定了 image 选项,则该选项被忽略
borderwidth 1. 指定 Label 的边框宽度 2. 默认值由系统指定,通常是 1 或 2 像素
bd 跟 borderwidth 一样
compound 1. 控制 Label 中文本和图像的混合模式 2. 默认情况下,如果有指定位图或图片,则不显示文本 3. 如果该选项设置为 “center”,文本显示在图像上(文本重叠图像) 4. 如果该选项设置为 “bottom”,“left”,“right” 或 “top”,那么图像显示在文本的旁边(如 “bottom”,则图像在文本的下方) 5. 默认值是 NONE
cursor 1. 指定当鼠标在 Label 上飘过的时候的鼠标样式 2. 默认值由系统指定
disabledforeground 1. 指定当 Label 不可用的时候前景色的颜色 2. 默认值由系统指定
font 1. 指定 Label 中文本的字体(注:如果同时设置字体和大小,应该用元组包起来,如(“楷体”, 20) 2. 一个 Label 只能设置一种字体 3. 默认值由系统指定
foreground 1. 设置 Label 的文本和位图的颜色 2. 默认值由系统指定
fg 跟 foreground 一样
height 1. 设置 Label 的高度 2. 如果 Label 显示的是文本,那么单位是文本单元 3. 如果 Label 显示的是图像,那么单位是像素(或屏幕单元) 4. 如果设置为 0 或者干脆不设置,那么会自动根据 Label 的内容计算出高度
highlightbackground 1. 指定当 Label 没有获得焦点的时候高亮边框的颜色 2. 默认值由系统指定,通常是标准背景颜色
highlightcolor 1. 指定当 Label 获得焦点的时候高亮边框的颜色 2. 默认值由系统指定
highlightthickness 1. 指定高亮边框的宽度 2. 默认值是 0(不带高亮边框)
image 1. 指定 Label 显示的图片 2. 该值应该是 PhotoImage,BitmapImage,或者能兼容的对象 3. 该选项优先于 text 和 bitmap 选项
justify 1. 定义如何对齐多行文本 2. 使用 “left”,“right” 或 “center” 3. 注意,文本的位置取决于 anchor 选项 4. 默认值是 “center”
padx 1. 指定 Label 水平方向上的额外间距(内容和边框间) 2. 单位是像素
pady 1. 指定 Label 垂直方向上的额外间距(内容和边框间) 2. 单位是像素
relief 1. 指定边框样式 2. 默认值是 “flat” 3. 另外你还可以设置 “groove”, “raised”, “ridge”, “solid” 或者 “sunken”
state 1. 指定 Label 的状态 2. 这个标签控制 Label 如何显示 3. 默认值是 "normal 4. 另外你还可以设置 “active” 或 “disabled”
takefocus 1. 如果是 True,该 Label 接受输入焦点 2. 默认值是 False
text 1. 指定 Label 显示的文本 2. 文本可以包含换行符 3. 如果设置了 bitmap 或 image 选项,该选项则被忽略
textvariable 1. Label 显示 Tkinter 变量(通常是一个 StringVar 变量)的内容 2. 如果变量被修改,Label 的文本会自动更新
underline 1. 跟 text 选项一起使用,用于指定哪一个字符画下划线(例如用于表示键盘快捷键) 2. 默认值是 -1 3. 例如设置为 1,则说明在 Button 的第 2 个字符处画下划线
width 1. 设置 Label 的宽度 2. 如果 Label 显示的是文本,那么单位是文本单元 3. 如果 Label 显示的是图像,那么单位是像素(或屏幕单元) 4. 如果设置为 0 或者干脆不设置,那么会自动根据 Label 的内容计算出宽度
wraplength 1. 决定 Label 的文本应该被分成多少行 2. 该选项指定每行的长度,单位是屏幕单元 3. 默认值是 0

Button控件

含有
含有
含有
窗口
按钮1
按钮2
按钮3
调用方法在控制台打印内容
调用匿名函数在控制台打印内容
调用window.quit实现退出
import tkinter

def function1():
    print("在窗口打印:调取function1()")
window = tkinter.Tk()
window.title("简单实例")
window.geometry("400x200+100+20")
strButton1="按钮1"
button1 = tkinter.Button(window,text=strButton1,command=function1,width=5,height=5)
button1.pack()
# 还可以是匿名函数
button2 = tkinter.Button(window,text="按钮2",command=lambda : print("lambda函数的调取"))
button2.pack()
button3 = tkinter.Button(window,text="按钮3",command=window.quit)
button3.pack()
window.mainloop()

Button各个参数

选项 含义
activebackground 1. 设置当 Button 处于活动状态(通过 state 选项设置状态)的背景色 2. 默认值由系统指定
activeforeground 1. 设置当 Button 处于活动状态(通过 state 选项设置状态)的前景色 2. 默认值由系统指定
anchor 1. 控制文本(或图像)在 Button 中显示的位置2. “n”, “ne”, “e”, “se”, “s”, “sw”, “w”, “nw”, 或者 “center” 来定位(ewsn 代表东西南北,上北下南左西右东) 3. 默认值是 “center”
background 1. 设置背景颜色 2. 默认值由系统指定
bg 跟 background 一样
bitmap 1. 指定显示到 Button 上的位图 2. 如果指定了 image 选项,则该选项被忽略
borderwidth 1. 指定 Button 的边框宽度 2. 默认值由系统指定,通常是 1 或 2 像素
bd 跟 borderwidth 一样
compound 1. 控制 Button 中文本和图像的混合模式 2. 默认情况下,如果有指定位图或图片,则不显示文本3. 如果该选项设置为 “center”,文本显示在图像上(文本重叠图像) 4. 如果该选项设置为 “bottom”,“left”,“right” 或 “top”,那么图像显示在文本的旁边(如 “bottom”,则图像在文本的下方) 5. 默认值是 NONE
cursor 1. 指定当鼠标在 Button 上飘过的时候的鼠标样式 2. 默认值由系统指定
default 1. 如果设置该选项(“normal”),该按钮会被绘制成默认按钮 2. Tkinter 会根据平台的具体指标来绘制(通常就是绘制一个额外的边框) 2. 默认值是 “disable”
disabledforeground 1. 指定当 Button 不可用的时候前景色的颜色 2. 默认值由系统指定
font 1. 指定 Button 中文本的字体 2. 一个 Button 只能设置一种字体 3. 默认值由系统指定
foreground 1. 设置 Button 的文本和位图的颜色 2. 默认值由系统指定
fg 跟 foreground 一样
height 1. 设置 Button 的高度 2. 如果 Button 显示的是文本,那么单位是文本单元 3. 如果 Button 显示的是图像,那么单位是像素(或屏幕单元) 4. 如果设置为 0 或者干脆不设置,那么会自动根据 Button 的内容计算出高度
highlightbackground 1. 指定当 Button 没有获得焦点的时候高亮边框的颜色 2. 默认值由系统指定
highlightcolor 1. 指定当 Button 获得焦点的时候高亮边框的颜色 2. 默认值由系统指定
highlightthickness 1. 指定高亮边框的宽度 2. 默认值是 0(不带高亮边框)
image 1. 指定 Button 显示的图片 2. 该值应该是 PhotoImage,BitmapImage,或者能兼容的对象 3. 该选项优先于 text 和 bitmap 选项
justify 1. 定义如何对齐多行文本2. 使用 “left”,“right” 或 “center” 3. 注意,文本的位置取决于 anchor 选项 4. 默认值是 “center”
overrelief 1. 定义当鼠标飘过时 Button 的样式 2. 如果不设置,那么总是使用 relief 选项指定的样式
padx 指定 Button 水平方向上的额外间距(内容和边框间)
pady 指定 Button 垂直方向上的额外间距(内容和边框间)
relief 1. 指定边框样式 2. 通常当按钮被按下时是 “sunken”,其他时候是 “raised” 3. 另外你还可以设置 “groove”、“ridge” 或 “flat” 4. 默认值是 “raised”
repeatdelay 见下方 repeatinterval 选项的描述
repeatinterval 1. 通常当用户鼠标按下按钮并释放的时候系统认为是一次点击动作。如果你希望当用户持续按下按钮的时候(没有松开),根据一定的间隔多次触发按钮,那么你可以设置这个选项。 2. 当用户持续按下按钮的时候,经过 repeatdelay 时间后,每 repeatinterval 间隔就触发一次按钮事件。 3. 例如设置 repeatdelay=1000,repeatinterval=300,则当用户持续按下按钮,在 1 秒的延迟后开始每 300 毫秒触发一次按钮事件,直到用户释放鼠标。
state 1. 指定 Button 的状态 2. 默认值是 “normal” 3. 另外你还可以设置 “active” 或 “disabled”
takefocus 1. 指定使用 Tab 键可以将焦点移到该 Button 组件上(这样按下空格键也相当于触发按钮事件) 2. 默认是开启的,可以将该选项设置为 False 避免焦点在此 Button 上
text 1. 指定 Button 显示的文本 2. 文本可以包含换行符 3. 如果设置了 bitmap 或 image 选项,该选项则被忽略
textvariable 1. Button 显示 Tkinter 变量(通常是一个 StringVar 变量)的内容 2. 如果变量被修改,Button 的文本会自动更新
underline 1. 跟 text 选项一起使用,用于指定哪一个字符画下划线(例如用于表示键盘快捷键) 2. 默认值是 -1 3. 例如设置为 1,则说明在 Button 的第 2 个字符处画下划线
width 1. 设置 Button 的宽度 2. 如果 Button 显示的是文本,那么单位是文本单元 3. 如果 Button 显示的是图像,那么单位是像素(或屏幕单元) 4. 如果设置为 0 或者干脆不设置,那么会自动根据 Button 的内容计算出宽度
wraplength 1. 决定 Button 的文本应该被分成多少行 2. 该选项指定每行的长度,单位是屏幕单元 3. 默认值是 0

Entry 控件

含有
含有
含有
窗口
输入框1
输入框2
输入框3
可输入内容
使用*显示可输入内容
控制台输出文本框内容
# 引入tkinter
import tkinter
window = tkinter.Tk()
window.title("Entry控件")
window.geometry("400x200+100+20")
# entry 输入控件:用于输入简单的文本内容
entry = tkinter.Entry(window)
entry.pack()
# 输入密码的时候,需要隐藏显示的内容
entry2 = tkinter.Entry(window,show="*")
entry2.pack()
# 给输入框设值取值
entryVar = tkinter.Variable()
entry3 = tkinter.Entry(window,textvariable=entryVar)
entry3.pack()
#  entryVar此事代表输入框这个对象
entryVar.set("输入框中实现设置值")
# 提取输入框的值
print("entry3输入框中的值:",entryVar.get())
print("entry3输入框中的值",entry3.get())
window.mainloop()

案例1:点击按钮获取文本框内容

含有
含有
点击
窗口
输入框1
按钮
可输入内容
控制台获取当前文本框中的内容
# 引入tkinter
import tkinter
def showMethod():
    # 提取输入框的值
    print("点击按钮后,entry3输入框中的值:", entryVar.get())
window = tkinter.Tk()
window.title("按钮输出输入")
window.geometry("400x200+100+20")
# 给输入框设值取值
entryVar = tkinter.Variable()
entry3 = tkinter.Entry(window,textvariable=entryVar)
entry3.pack()
strButton1="按钮1"
button1 = tkinter.Button(window,text=strButton1,command=showMethod)
button1.pack()
#  entryVar此事代表输入框这个对象
entryVar.set("输入框中实现设置值")
# 提取输入框的值
print("entry3输入框中的值:",entryVar.get())
window.mainloop()

Text控件

包含
窗口
text文本框
显示文本内容
import tkinter
window = tkinter.Tk()
window.title("text控件")
window.geometry("400x200+100+20")
# Text 文本控件,用于显示文本内容(大量的文本显示) height=显示的行数
text = tkinter.Text(window,width=30,height=5)
text.pack()
# 文本框中显示的大量的文本内容
strVar = "Text 组件用于显示文本文档,包含纯文本或格式化文本(使用不同字体,嵌入图片,显示链接,甚至是带 CSS 格式的 HTML 等)。因此,它常常也被用于作为简单的文本编辑器和网页浏览器使用。"
# 在文本框中插入字符串内容
text.insert(tkinter.INSERT,strVar)
window.mainloop()

案例2:带有滚动条的文本框

包含
包含
拖动滚动条
调整文字内容
窗口
文本框
滚动条
文本内容显示
import tkinter
window = tkinter.Tk()
window.title("滚动条文本框")
window.geometry("100x100+100+20")
# Text 文本控件,用于显示文本内容(大量的文本显示) height=显示的行数
text2 = tkinter.Text(window,width=30,height=5)
#创建滚动条
scrillberV = tkinter.Scrollbar()
# 显示滚动条 side=显示靠那一侧,fill=填充Y轴
scrillberV.pack(side=tkinter.RIGHT,fill=tkinter.Y)
# 设置使用滚动条的文本框 side=显示靠那一侧,fill=填充Y轴
text2.pack(side=tkinter.LEFT,fill=tkinter.Y)
# 实现滚动条和文本框关联
scrillberV.config(command=text2.yview)
text2.config(yscrollcommand=scrillberV.set)
# 文本框中显示的大量的文本内容
strVar = "Text 组件用于显示文本文档,包含纯文本或格式化文本(使用不同字体,嵌入图片,显示链接,甚至是带 CSS 格式的 HTML 等)。因此,它常常也被用于作为简单的文本编辑器和网页浏览器使用。"
# 在文本框中插入字符串内容
text2.insert(tkinter.INSERT,strVar)
window.mainloop()

CheckButton 多选控件

包含
包含
包含
窗口
多选项1
多选项2
多选项3
文本框中显示选择的内容
import tkinter
window = tkinter.Tk()
window.title("CheckButton多选框控件")
window.geometry("400x200+100+20")
# 方法funMethod
def funMethod():
    message=""
    # 若hobby1被选中
    if hobby1.get()==True:
        message+="money\n"
    # 若hobby2被选中
    if hobby2.get()==True:
        message+="power\n"
    # 若hobby3被选中
    if hobby3.get() == True:
        message += "ability\n"
    # 清楚所有的内容 text.delete(情况开始的行数.情况开始的列数,tkinter.END情况到最后)
    text.delete(0.0,tkinter.END)
    # 插入新的内容
    text.insert(tkinter.INSERT,message)
# 绑定变量,用于获取选取的
hobby1 = tkinter.BooleanVar()
hobby2 = tkinter.BooleanVar()
hobby3 = tkinter.BooleanVar()
# 创建一个复选框
checkButton1 = tkinter.Checkbutton(window,text="money",variable=hobby1,command=funMethod)
checkButton2 = tkinter.Checkbutton(window,text="power",variable=hobby2,command=funMethod)
checkButton3 = tkinter.Checkbutton(window,text="ability",variable=hobby3,command=funMethod)
checkButton1.pack()
checkButton2.pack()
checkButton3.pack()
# 显示选中的复选框
# Text 文本控件,用于显示文本内容(大量的文本显示) height=显示的行数
text = tkinter.Text(window,width=30,height=5)
text.pack()
window.mainloop()

RadioButton 单选控件

包含
包含
窗口
单选项男
单选项女
点此消彼
后台实时显示选择
# 引入tkinter
import tkinter
window = tkinter.Tk()
window.title("RadioButton单选框控件")
window.geometry("400x200+100+20")
# 点击之后获取点击书籍
def funMethod():
    print(rString.get())
# 设置绑定变量的变量
rString = tkinter.IntVar()
# 创建单选框对象 绑定变量产参数:
# ** 因为希望将两个设为一组,所以两个绑定一个变量  **
# value=0 默认选中
radioButton1 = tkinter.Radiobutton(window,text="男",value=1,variable=rString,command=funMethod)
radioButton2 = tkinter.Radiobutton(window,text="女",value=0,variable=rString,command=funMethod)
# 使得单选框显示
radioButton1.pack()
radioButton2.pack()
window.mainloop()

你可能感兴趣的:(python)