Tkinter:Button组件

Button组件

Button组件用于实现一个按钮,它的绝大部分选项与Label组件是一样的,不过button组件可以接受用户的信息。默认情况下,tab 按键被用于在按钮间切换。

简而言之,Button 组件是用于让用户说:“干!”,通过按钮上的文字或图标让用户清楚按下去是干什么用的。Button 组件常常被用于工具栏、应用程序窗口、和表示接受或拒绝的对话框。

Checkbutton 和 Radiobutton 组件 更适合做数据输入按钮使用。

Button组件就有一个command选项,用于指定一个函数或方法,当用户单击按钮的时候,就会自动的去调用这个方法或函数。

用法

普通的按钮只要指定Button 的内容(文本,图形,位图),并且关联按钮被按下是应该掉用的函数或方法。

import tkinter as tk
root = tk.Tk()
def callback():
	print('额,,我被调用了')
button = tk.Button(root,text='你好啊',command=callback)
button.pack()
root.mainloop()

在这里插入图片描述

如果一个按钮没有相关联的函数或方法,那么它就形同虚设。你可能在开发程序的过程中会使用到这样的按钮,在这种情况下,更好的方法是禁用这些按钮,从而避免导致你的测试用户产生疑惑。

button = tk.Button(root, text="不执行", state="disabled") # 这个按钮的文字就变灰了,,

还可以使一个按钮保存按下的样子,b.config(relief="sunken") 感觉这个函数是额外增加配置的

使用compound选项将图片和文件混合,,

photo = tk.PhotoImage(file = 'button.gif')
b=tk.Button(root,text='点我',font=20,image=photo,compound='center')
b.pack()

textvariable 用法

  1. Label 显示 Tkinter 变量(通常是一个 StringVar 变量)的内容
  2. 如果变量被修改,Label 的文本会自动更新
import tkinter as tk

def callback():
    var.set('呵呵,,我不信,,')
    
root = tk.Tk()

frame1 = tk.Frame(root)
frame2 = tk.Frame(root)

var = tk.StringVar()
var.set('你所下载的影片含有未成年人限制的内容,\n请满18周岁后再点击观看!')

textlabel = tk.Label(frame1,textvariable = var,justify='left')
textlabel.pack(side='left')

photo = tk.PhotoImage(file = '17.gif')
imglabel = tk.Label(frame1,image=photo)
imglabel.pack(side='right')

thebutton = tk.Button(frame2,text='我已满18',command=callback)
thebutton.pack()

frame1.pack(padx=10,pady=10)
frame2.pack(padx=10,pady=10)

root.mainloop()

在这里插入图片描述
在这里插入图片描述

参数

button的参数跟label 差不多,就是多出了下面这些:

方法 含义
default 1. 如果设置该选项(“normal”),该按钮会被绘制成默认按钮 2. Tkinter 会根据平台的具体指标来绘制(通常就是绘制一个额外的边框 3. 默认值是 “disable”
overrelief 1. 定义当鼠标飘过时 Button 的样式 4. 如果不设置,那么总是使用 relief 选项指定的样式
repeatdelay 见下方 repeatinterval 选项的描述
repeatinterval 1. 通常当用户鼠标按下按钮并释放的时候系统认为是一次点击动作。如果你希望当用户持续按下按钮的时候(没有松开),根据一定的间隔多次触发按钮,那么你可以设置这个选项。 2. 当用户持续按下按钮的时候,经过 repeatdelay 时间后,每 repeatinterval 间隔就触发一次按钮事件。 3. 例如设置 repeatdelay=1000,repeatinterval=300,则当用户持续按下按钮,在 1 秒的延迟后开始每 300 毫秒触发一次按钮事件,直到用户释放鼠标。

方法
flash()

– 刷新 Button 组件,该方法将重绘 Button 组件若干次(在 “active” 和 “normal” 状态间切换)。

invoke()

– 调用 Button 中 command 选项指定的函数或方法,并返回函数的返回值。
– 如果 Button 的state(状态)是 “disabled”(不可用)或没有指定 command 选项,则该方法无效。

猜你喜欢

转载自blog.csdn.net/weixin_46192930/article/details/106274150