目录

  • 前言
    • ●  Python解释器安装
    • ●  PyCharm开发环境
  • Python程序设计实验
    • ●  实验1 IDLE与代码编写规范
    • ●  实验2 输入输出与数据类型
    • ●  实验3 字符串处理
    • ●  实验4 数据运算
    • ●  实验5 列表与元组应用
    • ●  实验6 字典与集合应用
    • ●  实验7 if语句与match语句
    • ●  实验8 使用循环语句
    • ●  实验9 异常处理
    • ●  实验10 函数应用
    • ●  实验11 类的应用
    • ●  实验12 模块应用
    • ●  实验13  应用re模块
    • ●  实验14 文件处理
    • ●  实验15 用户界面设计
    • ●  实验18 SQLite数据库应用
    • ●  理论考试模拟试题A
    • ●  理论考试模拟试题B
    • ●  理论考试模拟试题C
    • ●  理论考试模拟试题D
  • 学习参考
    • ●  01 Python及其IDLE环境
    • ●  02 Python代码规范
    • ●  03 常量和变量
    • ●  04 输入输出
    • ●  05 运算符
    • ●  06 数值类型
    • ●  07 字符串
    • ●  08 列表
    • ●  09 元组
    • ●  10 字典
    • ●  11 集合
    • ●  12 条件语句
    • ●  13 循环语句
    • ●  14 异常处理
    • ●  15 自定义函数
    • ●  16 内置函数
    • ●  17 模块导入与定义
    • ●  18 math模块
    • ●  19 os模块
    • ●  20 time模块
    • ●  21 random模块
    • ●  22 文本文件
    • ●  23 二进制文件
    • ●  24 类的创建和使用
    • ●  25 类的继承与多态
 实验15 用户界面设计
任务1 用户界面设计-窗口设计

利用tkinter组件创建程序窗口。要求:

 1、窗口标题:与时俱进

 2、窗口大小:宽550、高380

 3、窗口左边距=70,上边距=80

 4、背景颜色:#F9DDA8

 5、运行后不能改变窗口大小

  程序保存到:s16t1.pyw

 6、运行程序,浏览程序执行效果

【参考与提示】

    Tk组件有以下内置函数:

1、title(s):设置窗口标题为字符串s。

2、geometry("WxH+L+T"):设置窗口宽为W、高为H、左边距为L、上边距为T。

 示例:rt.geometry("300x200+50+50")

3、resizable(0,0):禁止改变窗口大小。

#s16t1.pyw

import tkinter as tk

root = tk.Tk( )   # 创建主窗口

root.title("与时俱进")    # 设置窗口标题

root.geometry("550x380+70+80")   # 设置窗口大小和位置(宽550、高380,左边距70,上边距80)

root.configure(bg="#F9DDA8")    # 设置窗口背景颜色

root.resizable(False, False)      # 禁止改变窗口大小


root.mainloop( )   # 进入主事件循环    


任务2 用户界面设计-使用Label及Button组件

利用tkinter组件创建程序窗口。要求:

 1、窗口放置一个Label组件,设置:

  (1)显示内容:宝剑锋从磨砺出

  (2)place布局:x=10,y=10

 2、窗口放置一个Button组件,设置:

  (1)按钮文本:关闭窗口

  (2)宽度:10

  (3)单击时关闭窗口,终止程序执行

  (4)place布局:x=10,y=60

 程序保存到:s16t2.pyw

 3、运行程序,浏览程序执行效果。

【参考与提示】

 1、创建Label组件对象时支持"text"命名参数,用于设置组件显示的内容。

 2、Button组件对象支持以下命名参数:

  (1)text:按钮显示的文本。

  (2)width:设置按钮宽度(字符数)。

  (3)command:单击时运行的函数。本题可指定为Tk组件的内置函数destroy。

 3、组件均可通过place布局定位组件位置。

 示例:bt.place(x=30,y=30)

import tkinter as tk

root = tk.Tk( )

root.title("与时俱进")

root.geometry("550x380+70+80")

root.configure(bg="#F9DDA8")

root.resizable(width=False, height=False)


# 创建Label组件

label = tk.Label(root, text="宝剑锋从磨砺出")

label.place(x=10, y=10)


# 创建Button组件,点击关闭窗口

button = tk.Button(root,text="关闭窗口",width=10,command=root.destroy)

button.place(x=10, y=60)


root.mainloop( )


任务3 用户界面设计-使用Entry及Text组件

利用tkinter组件创建程序窗口。要求:

 1、窗口放置3个Entry组件,设置:

  (1)宽度:12

  (2)grid布局:分别占用0行的0、1、2列

 2、窗口放置1个Text组件,设置:

  (1)宽、高:40、11

  (2)grid布局:1行0列,占3列

 3、程序保存到:s16t3.pyw

 4、运行程序,浏览程序执行效果。

【参考与提示】

 1、创建Entry组件对象时支持"width"命名参数,用于设置组件显示的字符数。

 2、Text组件对象支持以下命名参数:

  (1)undo:设置是否开启撤消功能。

  (2)width、height:设置宽高,为字符数。

 3、组件均可通过grid布局定位组件位置,主要参数有:

  (1)row、column:组件所在行、列。

  (2)rowspan:组件占用行数。

  (3)columnspan:组件占用列数。

  (4)padx,pady:与其他组件的水平垂直距离。

  (%)sticky:在单元格中的显示方式。


import tkinter as tk

root = tk.Tk( )

root.title("与时俱进")

root.geometry("550x380+70+80")

root.resizable(width=False, height=False)


# 创建3个Entry组件,使用grid布局

entry1 = tk.Entry(root, width=12)

entry1.grid(row=0, column=0, padx=5, pady=5)

entry2 = tk.Entry(root, width=12)

entry2.grid(row=0, column=1, padx=5, pady=5)

entry3 = tk.Entry(root, width=12)

entry3.grid(row=0, column=2, padx=5, pady=5)


# 创建Text组件,使用grid布局并跨3列

text = tk.Text(root, width=40, height=11)

text.grid(row=1, column=0, columnspan=3, padx=5, pady=5)


root.mainloop( )


任务4 用户界面设计-事件处理

利用tkinter组件创建程序窗口。要求:

 1、窗口放置1个Entry组件,设置:

  (1)组件变量:tt

  (2)pack布局:占满窗口

  (3)响应"<Return>"事件:在et上显示输入内容对应表达式的值。如et输入的内容是3+9-2*4,则按回车键后,et显示的内容是4。如果表达式错误,则显示"Failed"。

 2、程序保存到:s16t4.pyw

 3、运行程序,浏览程序执行效果

【参考与提示】

    计算表达式的值:

 1、Entry组件绑定事件。格式:

     tt.bind(事件,回调函数)

 2、定义回调函数。

  (1)函数只能有一个参数,为事件对象。

  (2)利用Entry组件的内置函数get得到输入的字符串s。

  (3)利用Entry组件的内置函数delete删除et的全部内容。

  (4)利用Entry组件的内置函数insert将表达式的值(使用eval函数计算)插入Entry组件的显示内容中。

import tkinter as tk

# 定义回调函数:处理表达式计算

def calculate(event):

    expr = tt.get( )    # 获取输入内容

    try:

        result = eval(expr)     # 计算表达式结果

        tt.delete(0, tk.END)    # 清空输入框

        tt.insert(0, str(result))  # 显示计算结果

    except:

        tt.delete(0, tk.END)   # 清空输入框

        tt.insert(0, "Failed")   # 显示错误信息


# 创建主窗口

root = tk.Tk( )

root.title("表达式计算器")

root.geometry("400x200")

root.resizable(width=False, height=False)


# 创建Entry组件,使用pack布局占满窗口

tt = tk.Entry(root, font=("Arial", 12))

tt.pack(fill=tk.X, expand=True, padx=10, pady=10)  # 填满水平方向


# 绑定回车键事件

tt.bind("<Return>", calculate)

root.mainloop( )


任务5 用户界面设计-使用messagebox模块

利用tkinter组件创建程序窗口。要求:

 1、窗口关闭时显示询问窗口:

  (1)窗口标题:系统提示

  (2)显示问号图标

  (3)显示内容:是否结束?

  (4)显示"是"和"否"两个按钮。单击"是"按钮则关闭程序。

 2、程序保存到:s16t5.pyw

 3、运行程序,浏览程序执行效果。

【参考与提示】

 1、messagebox模块的函数askquestion可显示询问窗口,有"是"和"否"两个按钮。单击"是"按钮时函数返回"yes",否则为"no"。

 2、Tk组件的protocol方法可设置窗口关闭时的回调函数。如:

  rt.protocol("WM_DELETE_WINDOW",onQuit)

 3、Tk组件的destroy方法可关闭窗口。


import tkinter as tk

from tkinter import messagebox


def on_quit( ):

    # 弹出询问对话框

    choice = messagebox.askquestion("系统提示", "是否结束?")

    if choice == "yes":

        root.destroy( )    # 关闭窗口并退出程序


root = tk.Tk( )

root.title("用户界面设计示例")

root.geometry("300x200")


# 设置窗口关闭时调用的函数

root.protocol("WM_DELETE_WINDOW", on_quit)

root.mainloop( )