Python 3 – GUI编程之Tkinter
Python提供了多种选项来开发图形用户界面(GUI)。下面列出了最重要的功能。
- Tkinter − Tkinter是随Python提供的Tk GUI工具包的Python接口。我们将在本章中查看此选项。
-
wxPython − 这是wxWidgets GUI工具包的开源Python接口。
-
PyQt − 这也是一个流行的跨平台Qt GUI库的Python接口。
-
JPython − JPython是Java的一个Python端口,它为Python脚本在本地机器上提供与Java类库无缝访问 http://www.jython.org 。
还有许多其他可用的界面,您可以在网络上找到它们。
Tkinter编程
Tkinter是Python的标准GUI库。当Python与Tkinter组合使用时,可以快速简便地创建GUI应用程序。Tkinter为Tk GUI工具包提供了一个强大的面向对象接口。
使用Tkinter创建GUI应用程序是一项容易的任务。您只需要执行以下步骤-
- 导入Tkinter模块。
-
创建GUI应用程序主窗口。
-
向GUI应用程序添加一个或多个上述部件。
-
进入主事件循环,对用户触发的每个事件采取措施。
示例
#!/usr/bin/python3
import tkinter # 注意:模块名称已从Python 2中的Tkinter更改为Python 3中的tkinter
top = tkinter.Tk()
# 添加小部件的代码将在此处进行...
top.mainloop()
这将创建以下窗口−
Tkinter部件
Tkinter提供各种控件,例如在GUI应用程序中使用的按钮、标签和文本框。这些控件通常称为小部件。
目前在Tkinter中有15种小部件类型。我们以及以下表格中简要描述这些小部件−
序号 | 操作符和描述 |
---|---|
1 | Button Button小部件用于在应用程序中显示按钮。 |
2 | Canvas Canvas小部件用于在应用程序中绘制形状,例如直线、椭圆、多边形和矩形。 |
3 | Checkbutton Checkbutton小部件用于将多个选项显示为复选框。用户可以同时选择多个选项。 |
4 | Entry Entry小部件用于显示单行文本字段,以接受来自用户的值。 |
5 | Frame Frame小部件用作容器小部件,以组织其他小部件。 |
6 | Label Label小部件用于提供其他小部件的单行标题。它还可以包含图像。 |
7 | Listbox Listbox小部件用于向用户提供选项列表。 |
8 | Menubutton Menubutton小部件用于在应用程序中显示菜单。 |
9 | Menu Menu小部件用于向用户提供各种命令。这些命令都包含在Menubutton中。 |
10 | Message Message小部件用于显示多行文本字段,以接受来自用户的值。 |
11 | Radiobutton Radiobutton小部件用于将多个选项显示为单选按钮。用户一次只能选择一个选项。 |
12 | Scale Scale小部件用于提供滑动条小部件。 |
13 | Scrollbar Scrollbar小部件用于向各种小部件(例如列表框)添加滚动功能。 |
14 | Text Text小部件用于在多行文本中显示文本。 |
15 | Toplevel Toplevel小部件用于提供单独的窗口容器。 |
16 | Spinbox Spinbox小部件是标准Tkinter Entry小部件的一种变体,可用于从固定数量的值中进行选择。 |
17 | PanedWindow PanedWindow是一个容器小部件,可以包含任意数量的窗格,水平或垂直排列。 |
18 | LabelFrame LabelFrame是一个简单的容器小部件。它的主要目的是作为复杂窗口布局的间距或容器。 |
19 | tkMessageBox | 这个模块用于在您的应用程序中显示消息框。 |
标准属性
让我们看看它们的一些常见属性,如大小、颜色和字体是如何指定的。
布局管理
所有Tkinter小部件都可以访问特定的布局管理方法,这些方法的目的是在父小部件区域内组织小部件。Tkinter公开以下布局管理器类:pack,grid和place。
-
pack()方法 - 这个布局管理器会在将小部件放入父容器之前将其组织成块。
-
grid()方法 - 这个布局管理器会在父容器内组织小部件成类似表格的结构形式。
-
place()方法 - 这个布局管理器会按照在父容器中的特定位置来组织小部件。