教程 > tkinter 教程 > 阅读:226

tkinter 教程 按钮——迹忆客-ag捕鱼王app官网

tkinter 按钮控件 button 与 tkinter 标签 非常相似。它和tkinter 标签具有几乎相同的选项,除了它有一个额外的默认 default 选项。我们将在演示完基本按钮例子之后,再回到这个默认选项 default 的详细信息。

下面的代码生成了两个非常简单的按钮。

from sys import version_info
if version_info.major == 2:
    import tkinter as tk
elif version_info.major == 3:
    import tkinter as tk
    
app = tk.tk()
button1 = tk.button(app, text="python label 1")
button2 = tk.button(app, text="python label 2")
button1.pack(side=tk.left)
button2.pack(side=tk.left)
app.mainloop()

在你运行代码后,会在窗口中显示出两个彼此相邻的按钮。

tkinter 教程-基本按钮按钮


tkinter 按钮缺省选项 default

按钮中的缺省选项 default 通知 gui,该按钮是 gui 中的默认按钮。或者用一句简单的话来说,当用户按确认或回车键时,会自动调该按钮。

tkinter 不会自动创建默认按钮的回调命令,你需要自己手动创建。


tkinter 按钮回调命令

当用户按下按钮时,command 选项会调用回调函数。

command 选项启用时,按钮状态应该处于活动状态,否则,tkinter 不会调用回调函数。

from sys import version_info
if version_info.major == 2:
    import tkinter as tk
elif version_info.major == 3:
    import tkinter as tk
    
    
app = tk.tk()
labelexample = tk.button(app, text="0")
def change_label_number():
    counter = int(str(labelexample['text']))
    counter  = 1
    labelexample.config(text=str(counter))
    
buttonexample = tk.button(app, text="increase", width=30,
                          command=change_label_number)
buttonexample.pack()
labelexample.pack()
app.mainloop()

它在主窗口中创建了一个按钮和一个标签控件。当你每次单击按钮时,标签文本中的数字都会加 1。

tkinter 教程_按钮命令回调

def change_label_number():
    counter = int(str(labelexample['text']))
    counter  = 1
    labelexample.config(text=str(counter))

change_label_number 是单击按钮时被调用的回调函数。该函数读取标签所显示的数字,数字加 1 后再将新数字设置为标签文字。

buttonexample = tk.button(app, text="increase", width=30,
                          command=change_label_number)

这句话绑定按钮和回调函数 change_label_number

按钮选项中的函数名称后不附加括号。


带参数的命令回调函数

如果回调函数需要输入参数,我们则需要 functools 中的 partial 对象。partial 对象是带有位置参数 args 和关键字参数 keywords 的可调用对象。

下面的代码片段演示了如何在按钮命令中使用这个 partial 功能。

def change_label_number(num):
    counter = int(str(labelexample['text']))
    counter  = num
    labelexample.config(text=str(counter))
    
buttonexample = tk.button(app, text="increase", width=30,
                          command=partial(change_label_number, 2))

查看笔记

扫码一下
查看教程更方便
网站地图