Python 3 - GUI 编程 (Tkinter)

  • 简述

    Python 为开发图形用户界面 (GUI) 提供了多种选择。下面列出了最重要的功能。
    • Tkinter− Tkinter 是 Python 附带的 Tk GUI 工具包的 Python 接口。我们将在本章中查看此选项。
    • wxPython− 这是 wxWidgets GUI 工具包的开源 Python 接口。您可以在此处找到有关 WxPython 的完整教程。
    • PyQt- 这也是流行的跨平台 Qt GUI 库的 Python 接口。PyQT5提供了关于 PyQt 的非常好的教程。
    • 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 # note that module name has changed from Tkinter in Python 2 to tkinter in Python 3
    top = tkinter.Tk()
    # Code to add widgets will go here...
    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
    列表框小部件用于向用户提供选项列表。
    8 Menubutton
    Menubutton 小部件用于在您的应用程序中显示菜单。
    9 Menu
    菜单小部件用于向用户提供各种命令。这些命令包含在 Menubutton 中。
    10 Message
    Message 小部件用于显示多行文本字段以接受来自用户的值。
    11 Radiobutton
    Radiobutton 小部件用于将多个选项显示为单选按钮。用户一次只能选择一个选项。
    12 Scale
    Scale 小部件用于提供滑块小部件。
    13 Scrollbar
    Scrollbar 小部件用于向各种小部件(例如列表框)添加滚动功能。
    14 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() 方法- 此几何管理器通过将小部件放置在父小部件中的特定位置来组织小部件。