[Tkinter 教程03] Button 控件

Posted _Lyux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Tkinter 教程03] Button 控件相关的知识,希望对你有一定的参考价值。

原系列地址: Python Tkinter

简介

Button 控件是一种标准 Tkinter 控件, 用来展现不同样式的按钮. Button 控件被用以和用户交互, 比如按钮被鼠标点击后, 某种操作被启动. 和 Label 控件类似, 按钮可以展示图片或者文字. 不同的是, Label 控件可以指定字体, Button 控件只能使用单一的字体. Button 上的文字可以多行显示.
可以将一个 Python 函数或方法绑定到一个 Button 控件. 这个函数或方法将在按钮被点击时执行.

例子

下面的代码定义了两个 Button: 一个用来退出程序, 另一个用来执行某个操作, 比如 在终端打印 “Tkinter is easy to use!” .

from tkinter import *
class App:
  def __init__(self, master):
    frame = Frame(master)
    frame.pack()
    self.button = Button(frame, 
                         text="QUIT", fg="red",
                         command=quit)
    self.button.pack(side=LEFT)
    self.slogan = Button(frame,
                         text="Hello",
                         command=self.write_slogan)
    self.slogan.pack(side=LEFT)
  def write_slogan(self):
    print("Tkinter is easy to use!")

root = Tk()
app = App(root)
root.mainloop()

上面的代码输出如下窗口:

动态显示Label内容

下面的例子中, Label 控件的内容会自动加1, 直到停止按钮被点击:

import Tkinter as tk

counter = 0 
def counter_label(label):
  counter = 0
  def count():
    global counter
    counter += 1
    label.config(text=str(counter))
    label.after(1000, count)
  count()


root = tk.Tk()
root.title("Counting Seconds")
label = tk.Label(root, fg="dark green")
label.pack()
counter_label(label)
button = tk.Button(root, text='Stop', width=25, command=root.destroy)
button.pack()
root.mainloop()

上面的代码输出如下窗口:


译者水平有限, 如有疏漏, 欢迎指正.
已获得原作者授权. 原文地址: Buttons

以上是关于[Tkinter 教程03] Button 控件的主要内容,如果未能解决你的问题,请参考以下文章

Python中的tkinter怎么做?

python tkinter button中的command能否直接给变量赋值?

[Tkinter 教程10] Text 控件

Tkinter教程

[Tkinter 教程09] Scale 控件

[Tkinter 教程07] Entry 控件