Python基础教程(第3版)中文版 第12章 图形用户界面 (笔记)

简介: Python基础教程(第3版)中文版 第12章 图形用户界面 (笔记)

                                 第12章 图形用户界面GUI

1.创建GUI实例应用程序

1.导入tkinter
from tkinter import *

#书上的另一种方法import tkinter as tk 后面会出错.

创建作为主窗口的顶级组件(控件)。
top = Tk()

进入Tkinter主事件循环
mainloop()

创建其他控件

按钮Button
btn = Button()

创建后让按钮可见,使用 布局管理器(几何管理器) 告诉Tkinter控件的位置

最简单的方法是直接调用管理器pack

btn.pack()

此时将出现按钮,但是是空的按钮。

接着添加按钮属性和功能

btn['text'] = 'Click me!' #按钮显示信息

添加按钮的行为

def clicked():

   print('I was clicked!')

btn['command'] = clicked

或者使用config一次性添加多个属性和行为

btn.config(text='Click me!', command=clicked)

还可使用控件的构造函数来配置控件:

Button(text='Click me 2!', command=clicked).pack()

2.布局

调用方法pack时,将把控件放在父控件中。

使用构造函数的第一个可选参数可指定主控件。

默认把顶级主窗口用作主控件。

Label(text="In First window").pack()

second = Toplevel() #Toplevel 表示除主窗口外的另一个顶级窗口

Label(second,'In second window').pack()

不提供参数给pack时,pack把控件堆成一列

控件位置可以提供参数调整。

side :LEFT, RIGHT, TOP, BOTTOM

fill: X, Y, BOTH  #填充

expand: True, False #让窗口随父控件改变

#help(Pack.config)了解更多

#grid 和place 也可进行布局管理

grid可以通过表格单元格排列控件,

参数row和column,rowspan和columnspan

place可以让你手工放置,

指定x, y 坐标和高度、宽度

#help(Grid.configure)

#help(Place.config) 了解更多

3.事件处理

command属性指定动作(action)。

bind 让控件对特定的事件进行处理。

对控件调用方法bind,指定事件名称和要使用的函数。

例:

from tkinter import *

top = Tk()

def callback(event):

   print(event.x,event.y)

top.bind('<Button-1>', callback)

#详见help(Tk.bind)


4.最终程序(GUI文本编辑器)

from tkinter import *

from tkinter.scrolledtext import ScrolledText

def load():

with open(filename.get()) as file:

       contents.delete('1.0', END)

       contents.insert(INSERT, file.read())

def save():

   with open(filename.get(), 'w') as file:

       file.write(contents.get('1.0', END))

top = Tk()

top.title('简单的编辑器')

contents = ScrolledText()

contents.pack(side=BOTTOM, expand=True, fill=BOTH)

filename = Entry()

filename.pack(side=LEFT, expand=True, fill=X )

Button(text='打开',command=load).pack(side=LEFT)

Button(text="保存", command=save).pack(side=LEFT)

mainloop()

#help(tkinter)获取详细信息

小结:

创建一个简单的GUI程序步骤:

1.确定程序功能,布局对应的按钮和窗口,

2.使用函数实现功能,然后将窗口和函数绑定

上面的GUI文本编辑器的例子,为了创建一个文本编辑器,

首先确定功能:编辑文字,保存文件,读取文件

对应的窗口和按钮是:主窗口,编辑文字的窗口,保存按钮,读取(打开)按钮。保存和输入文件名的窗口(这个差点就忘了)


对应的代码:

#主窗口

top = Tk()

top.title('简单的编辑器')


#文字编辑窗口

contents = ScrolledText()

contents.pack(side=BOTTOM, expand=True, fill=BOTH)

#读取,保存窗口

Button(text='打开',command=load).pack(side=LEFT)

Button(text="保存", command=save).pack(side=LEFT)

#输入文件名窗口

filename = Entry()

filename.pack(side=LEFT, expand=True, fill=X )



之后就是实现具体的功能了,


def load():

   with open(filename.get()) as file:

       contents.delete('1.0', END)

       contents.insert(INSERT, file.read())



def save():

   with open(filename.get(), 'w') as file:

       file.write(contents.get('1.0', END))


文件的最后,使用 mainloop() 运行

#当然文件的开头加导入tkinter 和 ScrolledText


from tkinter import *

from tkinter.scrolledtext import ScrolledText


相关文章
|
7月前
|
编解码 数据安全/隐私保护 Python
抖音批量发布视频工具,自动上传视频作品笔记,python发布软件
这个抖音批量发布工具包含三个主要模块:主上传程序、配置文件和视频预处理工具。主程序
|
5月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
869 19
|
4月前
|
索引 Python
Python 列表切片赋值教程:掌握 “移花接木” 式列表修改技巧
本文通过生动的“嫁接”比喻,讲解Python列表切片赋值操作。切片可修改原列表内容,实现头部、尾部或中间元素替换,支持不等长赋值,灵活实现列表结构更新。
200 1
|
5月前
|
数据采集 存储 JSON
使用Python获取1688商品详情的教程
本教程介绍如何使用Python爬取1688商品详情信息,涵盖环境配置、代码编写、数据处理及合法合规注意事项,助你快速掌握商品数据抓取与保存技巧。
|
7月前
|
机器学习/深度学习 数据安全/隐私保护 计算机视觉
过三色刷脸技术,过三色刷脸技术教程,插件过人脸python分享学习
三色刷脸技术是基于RGB三通道分离的人脸特征提取方法,通过分析人脸在不同颜色通道的特征差异
|
7月前
|
XML Linux 区块链
Python提取Word表格数据教程(含.doc/.docx)
本文介绍了使用LibreOffice和python-docx库处理DOC文档表格的方法。首先需安装LibreOffice进行DOC到DOCX的格式转换,然后通过python-docx读取和修改表格数据。文中提供了详细的代码示例,包括格式转换函数、表格读取函数以及修改保存功能。该方法适用于Windows和Linux系统,解决了老旧DOC格式文档的处理难题,为需要处理历史文档的用户提供了实用解决方案。
868 0
|
6月前
|
并行计算 算法 Java
Python3解释器深度解析与实战教程:从源码到性能优化的全路径探索
Python解释器不止CPython,还包括PyPy、MicroPython、GraalVM等,各具特色,适用于不同场景。本文深入解析Python解释器的工作原理、内存管理机制、GIL限制及其优化策略,并介绍性能调优工具链及未来发展方向,助力开发者提升Python应用性能。
413 0
|
6月前
|
数据采集 索引 Python
Python Slice函数使用教程 - 详解与示例 | Python切片操作指南
Python中的`slice()`函数用于创建切片对象,以便对序列(如列表、字符串、元组)进行高效切片操作。它支持指定起始索引、结束索引和步长,提升代码可读性和灵活性。
|
7月前
|
API 数据安全/隐私保护 Python
小红书批量发布协议, 抖音自动批量发布软件脚本,笔记作品视频自动发布工具【python】
这个工具框架包含了小红书和抖音的批量发布功能,支持图片和视频处理、定时发布等功能

推荐镜像

更多