个性化阅读
专注于IT技术分析

python GUI编程 – Python高级开发教程

上一章Python教程请查看:python XML处理

Python为开发图形用户界面(gui)提供了各种选项,最重要的如下所列。

  • Tkinter – Tkinter是Python附带的Tk GUI工具包的Python接口,我们将在本章中查看这个选项。
  • WxPython – 这是一个wxWindows的开源Python接口。
  • JPython−JPython是一个用于Java的Python端口,它允许Python脚本无缝地访问本地机器上的Java类库。

还有许多其他可用的接口,你可以在网上找到它们。

1、Tkinter编程

Tkinter是Python的标准GUI库,与Tkinter结合使用时,Python提供了一种快速、简单的方法来创建GUI应用程序,Tkinter为Tk GUI工具包提供了一个强大的面向对象的接口。

使用Tkinter创建GUI应用程序是一项简单的任务,你所需要做的就是执行以下步骤

  • 导入Tkinter模块。
  • 创建GUI应用程序主窗口。
  • 向GUI应用程序添加一个或多个上述小部件。
  • 输入主事件循环,对用户触发的每个事件采取操作。
#!/usr/bin/python

import Tkinter
top = Tkinter.Tk()
# 添加小部件的代码将转到这里…
top.mainloop()

2、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 菜单小部件用于向用户提供各种命令。这些命令包含在Menubutton中。
10 Message Message小部件用于显示多行文本字段,用于接受来自用户的值。
11 Radiobutton Radiobutton小部件用于将许多选项显示为单选按钮。用户一次只能选择一个选项。
12 Scale Scale小部件用于提供一个滑动小部件。
13 Scrollbar 滚动条小部件用于向各种小部件(如列表框)添加滚动功能。
14 Text 文本小部件用于显示多行文本。
15 Toplevel Toplevel小部件用于提供一个单独的窗口容器。
16 Spinbox 自旋框小部件是标准Tkinter输入小部件的变体,可用于从固定数量的值中进行选择。
17 PanedWindow PanedWindow是一个容器小部件,它可以包含任意数量的窗格,可以水平排列,也可以垂直排列。
18 LabelFrame labelframe是一个简单的容器小部件。它的主要用途是充当复杂窗口布局的分隔符或容器。
19 tkMessageBox 此模块用于显示应用程序中的消息框。

让我们详细地研究一下这些小工具

3、标准属性

让我们来看看它们的一些共同属性,例如指定了大小、颜色和字体。

  • 纬度dimension
  • 颜色color
  • 字体font
  • 锚anchor
  • 风格relief style
  • 位图bitmap
  • 游标cusor

让我们简单地研究一下

4、几何管理和布局

所有Tkinter小部件都可以访问特定的几何图形管理方法,这些方法的目的是在整个父小部件区域组织小部件,Tkinter公开了以下几何管理器类:pack、grid和place。

  • pack()方法——这个几何图形管理器以块的形式组织小部件,然后将它们放置到父小部件中。
  • grid()方法——这个几何图形管理器在父小部件中以类似表格的结构组织小部件。
  • place()方法——这个几何图形管理器通过将小部件放置在父小部件中的特定位置来组织小部件。
赞(0)
未经允许不得转载:srcmini » python GUI编程 – Python高级开发教程

评论 抢沙发

评论前必须登录!