tkinter开始使用tkinter

备注

Tkinter(“ Tk Inter face”)是python的标准跨平台包,用于创建图形用户界面(GUI)。它使用Tk工具包提供对底层Tcl解释器的访问,Tk工具包本身是一个跨平台的多语言图形用户界面库。

Tkinter不是python的唯一GUI库,但它是标准的。可以与python一起使用的其他GUI库包括wxPythonPyQtkivy

Tkinter最大的优势在于其无处不在和简洁。它在大多数平台(Linux,OSX,Windows)上开箱即用,并且配备了大多数常见任务(按钮,标签,绘图画布,多行文本等)所需的各种小部件。

作为一种学习工具,tkinter具有GUI工具包中独有的一些功能,例如命名字体,绑定标记和变量跟踪。

python 2和3之间的差异

Tkinter在python 2和python 3之间基本没有变化,主要区别在于tkinter包和模块被重命名。

在python 2.x中导入

在python 2.x中,tkinter包名为Tkinter ,相关包具有自己的名称。例如,以下显示了python 2.x的一组典型import语句:

import Tkinter as tk
import tkFileDialog as filedialog
import ttk

在python 3.x中导入

虽然python 2和3之间的功能没有太大变化,但所有tkinter模块的名称都发生了变化。以下是python 3.x的一组典型import语句:

import tkinter as tk
from tkinter import filedialog
from tkinter import ttk

进一步阅读

版本

TCL

发布日期
8.6 2016年7月27日
8.5 2016年2月12日
8.4 2013年6月1日
8.3 2002-10-18
8.2 1999-12-16
8.1 1999年5月26日
8 1999年3月9日

蟒蛇

发布日期
3.6 2016年12月23日
3.5 2015年9月13日
3.4 2014年3月17日
3.3 2012年9月29日
3.2 2011-02-20
3.1 2009-06-26
3.0 2008-12-03
2.7 2010-07-03
2.6 2008-10-02
2.5 2006-09-19
2.4 2004-11-30
2.3 2003-07-29
2.2 2001-12-21
2.1 2001年4月15日
2.0 2000年10月16日

安装或设置

Tkinter预装了适用于Mac OS X和Windows平台的Python安装程序二进制文件。因此,如果您从Mac OS X或Windows平台的官方二进制文件安装Python,那么您最好使用Tkinter。

对于Debian版本的Linux,您必须使用以下命令手动安装它。

对于Python 3

sudo apt-get install python3-tk

对于Python 2.7

sudo apt-get install python-tk

使用yum安装程序的Linux发行版可以使用以下命令安装tkinter模块:

yum install tkinter

验证安装

要验证您是否已成功安装Tkinter,请打开Python控制台并键入以下命令:

import tkinter as tk # for Python 3 version

要么

import Tkinter as tk # for Python 2.x version

如果上述命令执行没有错误,则表示已成功安装Tkinter。

要检查Tkinter版本,请在Python REPL中键入以下命令:

对于python 3.X

import tkinter as tk
tk._test()

对于python 2.X

import Tkinter as tk
tk._test()

注意:不需要将Tkinter as tk导入Tkinter as tk但这是一种很好的做法,因为它有助于保持版本之间的一致性。

你好,世界! (最小)

让我们通过创建经典的“Hello,World!”来测试我们对tkinter的基本知识。程序。

首先,我们必须导入tkinter,这将根据版本而有所不同(请参阅有关“Python 2和3之间的差异”的备注部分)

在Python 3中,模块tkinter有一个小写的t:

import tkinter as tk

在Python 2中,模块Tkinter有一个大写的T:

import Tkinter as tk 

使用as tk并不是绝对必要的,但我们将使用它,因此本例的其余部分对两个版本都将起作用。

既然我们已经导入了tkinter模块,我们可以使用Tk类创建应用程序的根目录:

root = tk.Tk()

这将作为我们的应用程序的窗口。 (请注意, 其他窗口应该是Toplevel实例)

现在我们有了一个窗口,让我们用Label添加文本

label = tk.Label(root, text="Hello World!") # Create a text label
label.pack(padx=20, pady=20) # Pack it into the window

应用程序准备就绪后,我们可以使用mainloop方法启动它(进入事件循环

root.mainloop()

这将打开并运行应用程序,直到窗口被关闭停止或从回调(稍后讨论)调用退出函数,例如root.destroy()

把它们放在一起:

import tkinter as tk # Python 3.x Version
#import Tkinter as tk # Python 2.x Version

root = tk.Tk()

label = tk.Label(root, text="Hello World!") # Create a text label
label.pack(padx=20, pady=20) # Pack it into the window

root.mainloop()

这样的东西应该弹出:

tkinter窗口

你好,世界! (模块化,面向对象)

import tkinter as tk

class HelloWorld(tk.Frame):
    def __init__(self, parent):
        super(HelloWorld, self).__init__(parent)

        self.label = tk.Label(self, text="Hello, World!")
        self.label.pack(padx=20, pady=20)
        
if __name__ == "__main__":
    root = tk.Tk()

    main = HelloWorld(root)
    main.pack(fill="both", expand=True)

    root.mainloop()

注意:可以从几乎任何tkinter小部件继承,包括根窗口。从tkinter.Frame继承至少可以说是最灵活的,因为它支持多文档界面(MDI),单文档界面(SDI),单页面应用程序和多页面应用程序。