【python】python GUI编程--tkinter模块初探
创始人
2025-01-15 21:34:02
0次

在这里插入图片描述

✨✨ 欢迎大家来到景天科技苑✨✨

🎈🎈 养成好习惯,先赞后看哦~🎈🎈

🏆 作者简介:景天科技苑
🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。
🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi,flask等框架,linux,shell脚本等实操经验,网站搭建,数据库等分享。

所属的专栏:python图形化GUI编程tkinter精讲
景天的主页:景天科技苑

文章目录

  • 1.GUI 图形用户界面编程
  • 2.python中常用的 GUI 库
    • 1.tkinter 模块
    • 2.GUI编写程序步骤
      • 1. 创建应用程序主窗口对象(也称:根窗口)
      • 2. 在主窗口中,添加各种可视化组件,比如:按钮(Button)、文本框(Label)等。
      • 3. 通过几何布局管理器,管理组件的大小和位置
      • 4. 事件处理
      • 5.完整代码

1.GUI 图形用户界面编程

我们之前实现的都是基于控制台的程序,程序和用户的交互通过控制台来完成。
本章,我们将学习 GUI(Graphics User Interface),即图形用户界面编程,我们
可以通过 python 提供的丰富的组件,快速的实现使用图形界面和用户交互。
GUI 编程类似于“搭积木”,将一个个组件(Widget)放到窗口中。如下是 windows 中的
画图软件,就是一个典型的 GUI 程序:
在这里插入图片描述

上面的各种按钮、菜单、编辑区域等都是一个个组件,它们都放置到窗口中,并通过增
加“对事件的处理”成为一个完整的程序。

2.python中常用的 GUI 库

    1. Tkinter
      tkinter(Tk interface)是 Python 的标准 GUI 库,支持跨平台的 GUI 程序开发。tkinter
      适合小型的 GUI 程序编写,也特别适合初学者学习 GUI 编程。本章以 tkinter 为核心进行讲解。
    1. wxPython
      wxPython 是比较流行的 GUI 库,适合大型应用程序开发,功能强于 tkinter,整体设计框架类似于 MFC(Microsoft Foundation Classes 微软基础类库)。
    1. PyQT
      Qt 是一种开源的 GUI 库,适合大型 GUI 程序开发,PyQT 是 Qt 工具包标准的 Python 实现。我们也可以使用 Qt Desginer 界面设计器快速开发 GUI 应用程序。

1.tkinter 模块

本章中,涉及大量的 API 讲解。学习 API 最好的来源就是官方提供的文档:tkinter 官
方网址:https://docs.python.org/3.11/library/tk.html
在这里插入图片描述

2.GUI编写程序步骤

GUI 编程的核心步骤和第一个 GUI 程序
基于 tkinter 模块创建 GUI 程序包含如下 4 个核心步骤:

1. 创建应用程序主窗口对象(也称:根窗口)

(1) 通过类 Tk 的无参构造函数

from tkinter import * #创建个窗口 root = Tk() 

此时创建窗口,运行后不会出现我们创建的窗口
在这里插入图片描述

此时,需要调用组件的 mainloop 方法,进入事件循环,才会出现窗口

root.mainloop() 

此时就会弹出窗口,程序处于阻塞状态。就是个死循环,用来监听用户是否有操作,进入相应的方法执行一些事件
在这里插入图片描述

2. 在主窗口中,添加各种可视化组件,比如:按钮(Button)、文本框(Label)等。

#创建button对象,将窗口作为参数传进去,表示把button放进窗口里 btn01 = Button(root) btn01["text"] = "点我就送花" 

3. 通过几何布局管理器,管理组件的大小和位置

btn01.pack() 

此时运行程序,只显示个按钮,点击也没反应
在这里插入图片描述

需要对事件进行处理

4. 事件处理

(1) 通过绑定事件处理程序,响应用户操作所触发的事件(比如:单击、双击等)

#事件处理 #通过绑定事件处理程序,响应用户操作所触发的事件(比如:单击、双击等) #方法里面传一个参数,e表示事件对象 def songhua(e):     #显示到窗口上的信息,需要导入模块messagebox     messagebox.showinfo("Message","送你一朵玫瑰花,请你爱上我")     print("送你 99 朵玫瑰花")     print("e是什么",e)  #事件绑定,bind第一个参数 表示鼠标左键单击,第二个参数是事件函数 btn01.bind("",songhua) 

此时运行程序,点击按钮,就会在窗口上显示出我们设置的内容
在这里插入图片描述

点击确定,可以看到控制台打印
在这里插入图片描述

5.完整代码

from tkinter import * from tkinter import messagebox  #创建个窗口 root = Tk()  #在主窗口中,添加各种可视化组件,比如:按钮(Button)、文本框(Label)等。 #创建button对象,将窗口作为参数传进去,表示把button放进窗口里 btn01 = Button(root) btn01["text"] = "点我就送花"   #通过几何布局管理器,管理组件的大小和位置 btn01.pack()   #事件处理 #通过绑定事件处理程序,响应用户操作所触发的事件(比如:单击、双击等) #方法里面传一个参数,e表示事件对象 def songhua(e):     #显示到窗口上的信息,需要导入模块messagebox     messagebox.showinfo("Message","送你一朵玫瑰花,请你爱上我")     print("送你 99 朵玫瑰花")     print("e是什么",e)  #事件绑定,bind第一个参数 表示鼠标左键单击,第二个参数是事件函数 btn01.bind("",songhua)  #需要调用组件的 mainloop 方法,进入事件循环,才会出现窗口 root.mainloop() 

相关内容

热门资讯

每日必看!江岸多玩到底能开挂吗... 每日必看!江岸多玩到底能开挂吗(辅助挂),江岸多玩原来真的有辅助挂讲义1、江岸多玩脚本辅助下载、江岸...
玩家交流!颖河竞技怎么开挂(外... 玩家交流!颖河竞技怎么开挂(外挂),颖河竞技好像是有外挂教材一、颖河竞技游戏安装教程牌型概率发牌机制...
最新通报!皮皮四川麻将软件下载... 最新通报!皮皮四川麻将软件下载(辅助挂),皮皮四川麻将果然有辅助挂模块1、操作简单,无需皮皮四川麻将...
一分钟揭秘!52游戏开挂脚本(... 一分钟揭秘!52游戏开挂脚本(透视挂),52游戏切实有透视挂法子52游戏脚本下载中分为三种模型:52...
一分钟快速了解!堆堆乐开挂破解... 一分钟快速了解!堆堆乐开挂破解(外挂),堆堆乐竟然真的有外挂方针1、下载好堆堆乐正确养号方法之后点击...
重大通报!汇城贵州麻将开挂脚本... 重大通报!汇城贵州麻将开挂脚本(开挂),汇城贵州麻将原来真的有开挂法门1、重大通报!汇城贵州麻将开挂...
盘点一款!七色城透视挂件(外挂... 盘点一款!七色城透视挂件(外挂),七色城切实是真的有外挂经验1、全新机制【七色城ai辅助工具激活码】...
今日头条!多多休闲透视软件下载... 今日头条!多多休闲透视软件下载(外挂),多多休闲确实是真的有外挂攻略1、首先打开多多休闲辅助器下载最...
关于!钱柜麻将真的有透视吗(辅... 关于!钱柜麻将真的有透视吗(辅助器),钱柜麻将一贯是有辅助器练习钱柜麻将能透视中分为三种模型:钱柜麻...
今日焦点!河北家乡棋牌辅助工具... 今日焦点!河北家乡棋牌辅助工具(外挂),河北家乡棋牌果然是有外挂手册小薇(辅助器软件下载)致您一封信...