Python图形界面设计猜数字游戏

现代计算机和程序都会使用大量的图形。因此,本期以Tkinter模块为例介绍如何建立一些简单的GUI(图形用户界面),使编写的程序像大家平常熟悉的那些程序一样,有窗体、按钮之类的图形界面。本期的猜数字游戏界面使用Tkinter进行开发,学习本期内容后,读者可以掌握图形界面开发的能力。

1.游戏介绍

在游戏中,程序随机生成以内的数字,再让玩家去猜,如果猜的数字过大过小都会进行提示,程序还会统计玩家猜的次数。使用Tkinter开发猜数字游戏,运行效果如图1所示。

图1猜数字游戏运行效果

2.Python图形界面设计

Python提供了多个图形开发界面的库,几个常用PythonGUI库如下。

(1)Tkinter:Tkinter模块(Tk接口)是Python的标准TkGUI工具包的接口。Tkinter可以在大多数的UNIX平台下使用,同样可以应用在Windows和Macintosh系统里。Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。

(2)wxPython:wxPython是一款开源软件,是Python语言的一套优秀的GUI图形库,允许用户方便地创建完整的、功能健全的GUI用户界面。

()Jython:Jython程序可以与Java无缝集成。除了一些标准模块外,Jython使用Java的模块,Jython几乎拥有标准的Python中不依赖于C语言的全部模块。比如,Jython的用户界面使用Swing、AWT或者SWT呈现。Jython可以被动态或静态地编译成Java字节码。

Tkinter是Python的标准GUI库。由于Tkinter内置在Python的安装包中,因此,只要安装好Python就能导入Tkinter库,而且IDLE也是用Tkinter编写而成。对于简单的图形界面Tkinter能应付自如,使用Tkinter可以快速地创建GUI应用程序。本期主要采用Tkinter设计图形界面。

2.1创建Windows窗口

使用Tkinter创建一个Windows窗口的GUI程序示例。

在创建Windows窗口对象后,可以使用geometry()方法设置窗口的大小,格式如下:

size用于指定窗口大小,格式如下:

显示一个Windows窗口,初始大小为×。

还可以使用minsize()方法设置窗口的最小尺寸,使用maxsize()方法设置窗口的最大尺寸,方法如下:

Tkinter包含许多组件供用户使用。

2.2几何布局管理器

Tkinter几何布局管理器(GeometryManager)用于组织和管理父组件(往往是窗口)中子组件的布局方式。Tkinter提供了三种风格的几何布局管理类:pack、grid和place。

1.pack几何布局管理器

pack几何布局管理器采用块的方式组织组件。pack布局可根据子组件创建生成的顺序,将其放在快速生成界面的设计中,因此被广泛采用。

调用子组件的方法pack(),则该子组件在其父组件中采用pack布局:

pack方法提供如表1所示的若干参数选项。

表1pack方法提供的参数选项

pack几何布局管理器的GUI程序示例,运行效果如图2所示。

图2pack几何布局管理示例

2.grid几何布局管理器

grid几何布局管理器采用表格结构组织组件。子组件的位置由行/列确定的单元格决定,子组件可以跨越多行/列。在每一列中,列宽由这一列中最宽的单元格确定。采用grid布局,适合于表格形式的布局,可以实现复杂的界面,因而被广泛采用。

调用子组件的grid()方法,则该子组件在其父组件中采用grid布局:

grid()方法提供如表2所示的若干参数选项。

表2grid方法提供的参数选项

grid()方法中两个最为重要的参数,一个是row,另一个是column。它们可用来指定将子组件放置到什么位置,如果不指定row,则会将子组件放置到第一个可用的行上;如果不指定column,则使用第0列(首列)。

grid几何布局管理器的GUI程序示例,运行效果如图所示。

图grid几何布局管理示例

.place几何布局管理器

place几何布局管理器允许开发者指定组件的大小与位置。place的优点是可以精确控制组件的位置;缺点是改变窗口大小时,子组件不能随之灵活改变大小。

调用子组件的方法place(),则该子组件在其父组件中采用place布局:

place()方法提供如表所示的若干参数选项,可以直接对参数选项赋值进行修改。

表place方法提供的参数选项

注意:Python的坐标系是左上角为原点(0,0)位置,向右是x坐标正方向,向下是y坐标正方向,与数学的几何坐标系不同。

place几何布局管理器的GUI示例程序。运行效果如图4所示。

图4place几何布局管理示例

2.Tkinter组件

Tkinter提供各种组件(控件),如按钮、标签和文本框,可在一个GUI应用程序中使用。这些组件通常被称为控件或者部件。目前常用的Tkinter组件如表4所示。

表4Tkinter组件

通过组件类的构造函数可以创建对象实例。例如:

组件标准属性也就是所有组件(控件)的共同属性,如大小、字体和颜色等。常用的标准属性如表5所示。

表5Tkinter组件标准属性

可以通过下列几种方式设置组件属性。

1.标签(Label)组件

Label组件用于在窗口中显示文本或位图。Anchor属性指定文本(text)或图像(bitmap/image)在Label中的显示位置(如图5所示,其他组件同此)。对应于东南西北中以及四个角,可用值如下:

图5Anchor地理方位

Label组件示例,运行效果如图6所示。

图6Label组件示例

2.按钮(Button)组件

Button组件(控件)是一个标准的Tkinter部件,用于实现各种按钮功能。按钮可以包含文本或图像,可以通过


转载请注明:http://www.aierlanlan.com/cyrz/746.html

  • 上一篇文章:
  •   
  • 下一篇文章: