Python tkinter教程-03:按钮
文章目录
- 0 准备工作
- 1介绍
- 2 基本用法
- 3 通用方法
- 4 绑定点击事件
- 5 禁用与启用按钮
- 其它
0 准备工作
要使用,先导入:import tkinter as tk
导入名字叫tkinter的库,并将名字改为tk,这样方便使用
注意:尽量不要使用IDLE,不然可能会和tkinter有冲突,因为IDLE是tkinter写的
1介绍
废话不多说,和Label一样要放在mainloop前面!
常用参数:
参数 | 说明 |
text | 文本 |
font | 字体 |
bg | 背景颜色 |
fg | 字体颜色 |
width | 按钮宽度 |
heigh | 按钮高度 |
image | 插入图片 |
textvariable | 与tkVar绑定,实现文本自动更新 |
command | 点击执行 |
state | 状态(禁用,启用) |
2 基本用法
要用按钮,肯定要先召唤出来~召唤代码tkinter.Button(窗口名字)
~~~
还是老样子,没什么难的:
import tkinter as tk
window = tk.Tk()
window.title("Python tkinter教程-03:按钮 by 罗富茗")
b = tk.Button(window)
b.pack()
window.mainloop()
3 通用方法
通用方法,不多说,就是这些:
参数 | 说明 |
text | 文本 |
font | 字体 |
bg | 背景颜色 |
fg | 字体颜色 |
width | 按钮宽度 |
heigh | 按钮高度 |
image | 插入图片 |
textvariable | 与tkVar绑定,实现文本自动更新 |
按钮为一的好处就是可以绑定点击事件(标签也可以,但是没有那么便捷),而且有动画效果。
话不多说,上代码,都是熟悉的参数,不讲了:
(如果这几个不熟悉,请点击这里去补习)
import tkinter as tk
window = tk.Tk()
window.title("Python tkinter教程-03:按钮 by 罗富茗")
b = tk.Button(window, text="我是一个巨大的按钮", font=("kaiti", 100), bg="red", fg="blue")
b.pack()
window.mainloop()
4 绑定点击事件
怎么知道按钮被点下了呢?就用command参数来绑定点击事件。
首先你要明确点击后要干什么,然后把你要干的事情整合到一个函数里面(尽量不要加参数,如果要加参数,就必须用lambda,比较麻烦):
def button_down():
print("你点到我了!")
定义完就可以使用的:tkinter.Button(窗口名字, ......, command=定义好的函数)
(注意:不要写成函数名字()
,要写成函数名字
!)
范例:
import tkinter as tk
window = tk.Tk()
window.title("Python tkinter教程-03:按钮 by 罗富茗")
def button_down():
print("你按到我了!")
b = tk.Button(window, text="按一下我!", font=("kaiti", 30), command=button_down)
b.pack()
window.mainloop()
5 禁用与启用按钮
这个一般用于开关,比如当你点击:
开 —— 禁用“开”,启用“关”
关 —— 禁用“关”,启用“开”
不废话,先说怎么用吧:
禁用 -按钮名字.config(state="disabled")
或者按钮名字["state"] = "disabled"
启用 -按钮名字.config(state="normal")
或者按钮名字["state"] = "normal"
开关按钮范例:
import tkinter as tk
window = tk.Tk()
window.title("Python tkinter教程-03:按钮 by 罗富茗")
def on():
b1["state"] = "disable"
b2["state"] = "normal"
def off():
b1["state"] = "normal"
b2["state"] = "disable"
b1 = tk.Button(window, text="开", command=on)
b1.pack()
b2 = tk.Button(window, text="关", command=off, state="disable")
b2.pack()
window.mainloop()
其它
以后写~~~记得关注!!!