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


相关文章
|
1月前
|
JSON 数据可视化 API
Python 中调用 DeepSeek-R1 API的方法介绍,图文教程
本教程详细介绍了如何使用 Python 调用 DeepSeek 的 R1 大模型 API,适合编程新手。首先登录 DeepSeek 控制台获取 API Key,安装 Python 和 requests 库后,编写基础调用代码并运行。文末包含常见问题解答和更简单的可视化调用方法,建议收藏备用。 原文链接:[如何使用 Python 调用 DeepSeek-R1 API?](https://apifox.com/apiskills/how-to-call-the-deepseek-r1-api-using-python/)
|
7天前
|
机器学习/深度学习 数据采集 数据可视化
Python/Anaconda双方案加持!Jupyter Notebook全平台下载教程来袭
Jupyter Notebook 是一款交互式编程与数据科学分析工具,支持40多种编程语言,广泛应用于机器学习、数据清洗和学术研究。其核心优势包括实时执行代码片段、支持Markdown文档与LaTeX公式混排,并可导出HTML/PDF/幻灯片等格式。本文详细介绍了Jupyter Notebook的软件定位、特性、安装方案(Anaconda集成环境与原生Python+PIP安装)、首次运行配置及常见问题解决方案,帮助用户快速上手并高效使用该工具。
|
13天前
|
SQL 关系型数据库 MySQL
milvus-use教程 python
本项目参考vanna项目,获取数据库元数据和问题SQL对,存入Milvus向量数据库,并进行相似性检索。采用m3e-large嵌入模型,通过DatabaseManager类实现数据库连接持久化,MilvusVectorStore类封装了Milvus操作方法,如创建集合、添加数据和查询。项目提供init_collections、delete_collections等文件用于初始化、删除和管理集合。所用Milvus版本较新,API与vanna项目不兼容。 [项目地址](https://gitee.com/alpbeta/milvus-use)
93 9
|
19天前
|
大数据 开发者 C++
Python语法糖详解教程
《Python语法糖详解教程》介绍了编程语言中的“语法糖”,即通过特殊语法形式简化代码,使代码更简洁、易读和高效。文章详细解析了列表推导式、字典推导式、元组解包、条件表达式、with语句和装饰器等核心语法糖,并提供了具体示例和最佳实践指南。通过这些技巧,开发者可以在保持底层功能不变的前提下,显著提升开发效率和代码质量。
40 8
|
2月前
|
IDE 测试技术 项目管理
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
PyCharm是由JetBrains开发的Python集成开发环境(IDE),专为Python开发者设计,支持Web开发、调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试和版本控制等功能。它有专业版、教育版和社区版三个版本,其中社区版免费且适合个人和小型团队使用,包含基本的Python开发功能。安装PyCharm前需先安装Python解释器,并配置环境变量。通过简单的步骤即可在PyCharm中创建并运行Python项目,如输出“Hello World”。
492 13
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
|
22天前
|
C语言 Python
Python学习:内建属性、内建函数的教程
本文介绍了Python中的内建属性和内建函数。内建属性包括`__init__`、`__new__`、`__class__`等,通过`dir()`函数可以查看类的所有内建属性。内建函数如`range`、`map`、`filter`、`reduce`和`sorted`等,分别用于生成序列、映射操作、过滤操作、累积计算和排序。其中,`reduce`在Python 3中需从`functools`模块导入。示例代码展示了这些特性和函数的具体用法及注意事项。
|
3月前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
110 8
|
3月前
Seaborn 教程-主题(Theme)
Seaborn 教程-主题(Theme)
176 7
|
3月前
|
Python
Seaborn 教程-模板(Context)
Seaborn 教程-模板(Context)
61 4
|
3月前
|
数据可视化 Python
Seaborn 教程
Seaborn 教程
74 5

热门文章

最新文章