您的位置:

使用Tkinter创建GUI界面

Graphical User Interface (GUI)即图形用户界面,使用图形、图标、按钮、滑动条等来创建交互式程序。Tkinter是Python内置的一个GUI库,是Python的标准GUI库之一,是使用最广泛的库之一,可以轻松创建各种窗口应用程序。本文将介绍如何使用Tkinter创建GUI界面,让读者掌握基础知识,简单易懂。

一、创建窗口

Tkinter的主要窗口是Tk类。创建窗口很简单,只需要实例化Tk类即可,下面是一个例子:

import tkinter as tk
root = tk.Tk()
root.mainloop()

运行这个代码会打开一个空的窗口。 Tk()是Tkinter中最基本的类。绑定Tk()到变量root后,会创建一个空的窗口。调用mainloop()后会在窗口中显示内容。要退出窗口,只需关闭窗口即可。

二、添加部件

将按钮、标签等元素添加到窗口中的过程是添加部件。在Tkinter中,可以使用各种各样的部件,例如label、button、menu、text、text box、scroll bar等等,我们可以使用add()方法或pack()方法添加这些部件到窗口中。接下来,我们将通过几个部件来说明如何使用Tkinter创建简单的GUI。

三、按钮

按钮是GUI中最常用的部件之一,下面是一个简单的例子:

import tkinter as tk

root = tk.Tk()

def hello():
    print("Hello, World!")

button = tk.Button(root, text="Hello", command=hello)
button.pack()

root.mainloop()

这个例子创建了一个按钮,并在按钮上写了"Hello"。单击按钮后,会调用hello()函数,该函数会输出字符串"Hello, World!"。要让按钮显示在窗口中,我们使用pack()方法。pack()方法是一个布局管理器,它将按钮放置在窗口中。本例将按钮放在父窗口中。

四、标签

标签用于显示文本或图像。该部件是不可编辑的,可以设置字体、颜色和对齐方式等属性。下面是一个标签的例子:

import tkinter as tk

root = tk.Tk()

label = tk.Label(root, text="Hello, World!", font=("Arial", 16))
label.pack()

root.mainloop()

这个例子创建了一个标签,显示文本字符串"Hello, World!"。 'font'属性设置了标签的Arial字体和字号16。使用pack()方法将标签放置在窗口中。

五、输入文本

输入文本用于获取用户输入,通常用于输入用户名或密码等信息。Tkinter提供了多种输入控件,最常见的是Entry。 Entry控件用于接收字符串输入,下面是一个例子:

import tkinter as tk

root = tk.Tk()

entry = tk.Entry(root)
entry.pack()

root.mainloop()

此代码创建了一个输入文本部件。调用Entry()方法创建一个Entry实例,并使用pack()方法将其添加到窗口中。 用户可以在文本框中输入文本。要获取用户输入的文本,可以使用get()方法,例如:

import tkinter as tk
 
def print_entry_value():
    print(entry.get())
 
button = tk.Button(root, text='Print Entry', command=print_entry_value)
button.pack()

此代码创建了一个“Print Entry”按钮,并将按钮绑定到“print_entry_value”函数。当用户输入文本并单击该按钮时,该函数会获取Entry文本框中输入的文本并打印它。

六、总结

在本文中,我们向读者介绍了如何使用Tkinter创建GUI窗口、添加控件、包括按钮、标签、输入文本等。Tkinter可以让GUI应用程序设计变得更加容易和直观,是Python编程的重要工具之一。

完整代码示例:

import tkinter as tk

root = tk.Tk()

label = tk.Label(root, text="Hello, World!", font=("Arial", 16))
label.pack()

button = tk.Button(root, text="Click Me")
button.pack()

entry = tk.Entry(root)
entry.pack()

def print_entry_value():
    print(entry.get())

button1 = tk.Button(root, text='Print Entry', command=print_entry_value)
button1.pack()

root.mainloop()