📜  Python Tkinter教程(1)

📅  最后修改于: 2023-12-03 15:34:05.364000             🧑  作者: Mango

Python Tkinter教程

简介

Tkinter是Python常用的界面编程库之一,它能够创建GUI界面,支持各种组件,如按钮、输入框和标签等。Tkinter是Python自带的库,在Python安装包中就包含了它,使用非常方便。

安装

由于Tkinter是Python自带的库,因此无需额外安装。只需要在Python脚本中导入Tkinter即可使用。

import tkinter as tk
创建窗口

使用Tkinter创建界面,首先需要先创建一个窗口。可以通过tk.Tk()方法来实现,如下所示:

import tkinter as tk

root = tk.Tk()
root.mainloop()

其中,tk.Tk()方法表示创建一个窗口对象,将其赋值给root变量。root.mainloop()方法表示运行窗口程序,进入事件循环,保证窗口一直存在。

创建窗口后,可以设置窗口的大小、标题和图标等属性,如下所示:

import tkinter as tk

root = tk.Tk()
root.title("My GUI App")
root.geometry("300x200")
root.iconbitmap("myicon.ico")
root.mainloop()

其中,root.title()方法设置窗口标题,root.geometry()方法设置窗口大小,root.iconbitmap()方法设置窗口图标(需要提前自定义图标并保存为ico格式)。

创建组件

Tkinter中的组件是构成界面的基本元素,它们包括按钮、标签、输入框等。创建组件也很简单,只需要调用相应的方法即可。

创建标签

标签是用于显示文字或图片等内容的组件,使用tk.Label()方法来创建,如下所示:

import tkinter as tk

root = tk.Tk()
label = tk.Label(root, text="Hello Tkinter!")
label.pack()
root.mainloop()

其中,tk.Label()方法表示创建一个标签对象,将其赋值给label变量。root表示将标签放在窗口上,text表示标签显示的文字。

创建按钮

按钮是用于触发事件的组件,使用tk.Button()方法来创建,如下所示:

import tkinter as tk

root = tk.Tk()

def button_click():
    print("Button clicked")

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

root.mainloop()

其中,tk.Button()方法表示创建一个按钮对象,将其赋值给button变量。root表示将按钮放在窗口上,text表示按钮显示的文字,command表示按钮点击时触发的事件。

创建输入框

输入框是用于输入文本的组件,使用tk.Entry()方法来创建,如下所示:

import tkinter as tk

root = tk.Tk()

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

root.mainloop()

其中,tk.Entry()方法表示创建一个输入框对象,将其赋值给entry变量。root表示将输入框放在窗口上。

布局管理

布局管理是指按照一定的规则和方式来排列组件,让窗口中的组件可以整齐、美观地呈现出来。Tkinter提供了多种布局管理器,如pack()place()grid()等。

pack()管理器

pack()管理器是最简单的布局管理器,它将组件一行行地堆叠起来,或者一列列地排列。下面是一个例子:

import tkinter as tk

root = tk.Tk()

button1 = tk.Button(root, text="Button 1")
button1.pack(side=tk.LEFT)

button2 = tk.Button(root, text="Button 2")
button2.pack(side=tk.LEFT)

button3 = tk.Button(root, text="Button 3")
button3.pack(side=tk.LEFT)

root.mainloop()

其中,side参数表示组件的对齐方式,可以为tk.TOPtk.BOTTOMtk.LEFTtk.RIGHT等。

place()管理器

place()管理器可以精确定位组件的位置,但是需要手动指定组件的坐标和大小。下面是一个例子:

import tkinter as tk

root = tk.Tk()

label1 = tk.Label(root, text="Label 1")
label1.place(x=50, y=50)

label2 = tk.Label(root, text="Label 2")
label2.place(x=100, y=100)

root.mainloop()

其中,xy参数表示组件的左上角坐标。

grid()管理器

grid()管理器是将窗口分为若干行与若干列,并按照网格的方式排列组件。下面是一个例子:

import tkinter as tk

root = tk.Tk()

label1 = tk.Label(root, text="Label 1")
label1.grid(row=0, column=0)

label2 = tk.Label(root, text="Label 2")
label2.grid(row=1, column=0)

label3 = tk.Label(root, text="Label 3")
label3.grid(row=2, column=0)

root.mainloop()

其中,rowcolumn参数表示组件所在的行和列。

总结

本教程简要介绍了Tkinter库的使用,包括创建窗口、创建组件、布局管理等内容。Tkinter虽然功能不如其他GUI库强大,但是它简单易用、学习成本低,适合初学者入门。如果想要进行更复杂、更专业的GUI开发,则可以学习其他GUI库,如PyQt、wxPython等。