1 目的

  1. 了解Python GUI编程;
  2. 熟悉GUI编程的大致流程;
  3. 熟悉组件和用户行为交互的方式。

2 GUI编码流程

基本上使用tkinter来开发GUI应用需要以下5个步骤:

  1. 导入tkinter模块中我们需要的东西。(导包)
  2. 创建一个顶层窗口对象并用它来承载整个GUI应用。
  3. 在顶层窗口对象上添加GUI组件。
  4. 通过代码将这些GUI组件的功能组织起来。
  5. 进入主事件循环(main loop)。

3 牛刀小试——修改label的内容和颜色

***注意confirm_to_quit中需要最后加入“ exit(0)”退出程序的时候才不会卡死!***

#!/usr/bin/python3.7
# -*- coding: utf-8 -*-
# @Time    : 2021/6/24 17:38
# @Author  : Yujie_Xue
# @Email   : xyj19970628@163.com
# @File    : 10.1 gui应用(tkinter).py
# @Software: PyCharm 2019.1
"""
基本上使用tkinter来开发GUI应用需要以下5个步骤:
1. 导入tkinter模块中我们需要的东西。(导包)
2. 创建一个顶层窗口对象并用它来承载整个GUI应用。
3. 在顶层窗口对象上添加GUI组件。
4. 通过代码将这些GUI组件的功能组织起来。
5. 进入主事件循环(main loop)。
"""
import tkinter
import tkinter.messageboxdef main():flag = True# 修改标签上的文字def change_label_text():# 触发这个事件可以重新配置标签的颜色nonlocal flagflag = not flagcolor, msg = ('red', 'Hello, world!') \if flag else ('blue', 'Goodbye, world!')label.config(text=msg, fg=color)# 这个标签一定有这两个属性# 确认退出def confirm_to_quit():if tkinter.messagebox.askokcancel('温馨提示', '确定要退出吗?'):top.quit() # 退出!exit(0) # 加一个这个就不会卡死了!!!# 创建顶层窗口top = tkinter.Tk()# 设置窗口大小top.geometry('240x160')# 设置窗口标题top.title('小游戏')# 创建标签对象并添加到顶层窗口label = tkinter.Label(top, text='Hello world!', font='Arial-32', fg='red')label.pack(expand=1)# 创建一个装按钮的容器panel = tkinter.Frame(top)# 创建按钮对象 指定添加到哪个容器中,通过command参数绑定时间回调函数button1 = tkinter.Button(panel, text='修改', command = change_label_text)button1.pack(side='left')button2 = tkinter.Button(panel, text='退出', command = confirm_to_quit)button2.pack(side='right')panel.pack(side='bottom')# 开启主事件循环tkinter.mainloop() # 为什么会卡死?if __name__ == '__main__':main()

4 运行效果


点一下修改:

点一下退出:

确定后即可退出程序。

Python基础综合训练三(tkinter牛刀小试)相关推荐

  1. Python基础(三)--序列

    Python基础(三)--序列 1 序列相关的概念 1.1 什么是序列 序列是一种可迭代对象,可以存储多个数据,并提供数据的访问. 序列中的数据称为元素,Python内置的序列类型有:列表(list) ...

  2. Python基础第三课-基本数据类型

    Python基础第三课-基本数据类型 1.几个基本概念 1.1 表达式 1.2 语句 1.3 程序(program) 1.4 函数(function) 2.标识符 2.1 关键字 2.2 标识符概念 ...

  3. 【python基础知识】Tkinter基础

    1.Tkinter python小工具: python-tkinter助手(生成简单界面框架的程序),链接:https://www.jb51.net/softs/659714.html 2.Tkint ...

  4. python:python基础语法三,列表、元组、字典、集合

    python基础语法 文章目录 python基础语法 列表(list) 列表简介 切片 列表修改元素 列表的方法 遍历列表 序列(sequence) 序列的基本操作 range()函数 EMS(Emp ...

  5. python基础第三章选择结构答案-零基础学Python--------第3章 流程控制语句

    第3章 流程控制语句 3.1程序的结构 计算机在解决某个具体问题时,主要有3种情况,分别是顺序执行所有的语句.选择执行部分语句和循环执行部分语句.程序设计中的3种基本结构为顺序结构.选择结构和循环结构 ...

  6. python基础代码事例-python基础第三章

    第三章主要讲解Python的print语句的应用和赋值语句,代码块与缩进,条件语句,循环语句.这几种基础的语句 Python 条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者 ...

  7. python基础第三章

    •程序的格式框架 python代码缩进 1.缩进:一行代码开始前的空白区域,表达程序的格式框架. 2.缩进分为单层缩进和多层缩进 3.Python对缩进有着强制性要求,通过缩进来控制程序的结构和层次 ...

  8. python基础第三章选择结构答案-Python days03-选择结构【if】

    编程基础:程序结构 通常情况下,代码为了模拟生活中的处理问题的方式/步骤,出现程序运行结构 1.顺序结构:按照从上到下的顺序,逐行解释执行代码! 2.选择结构:模拟生活中的选择条件,根据条件的结果来执 ...

  9. Python基础(三):字符串和元组常用方法

    字符串 在python中单引号和双引号所表示的字符串并没有区别,字符串具有不可变性,及所有操作均不改变原字符串的值.另外三个双引号和单引号包起来的字符串可以换行写入. In [83]: '''sss. ...

  10. Python基础(三)深浅拷贝、函数、文件处理、三元运算、递归、冒泡排序

    本章内容: 深浅拷贝 函数(全局与局部变量) 内置函数 文件处理 三元运算 lambda 表达式 递归(斐波那契数列) 冒泡排序 深浅拷贝 一.数字和字符串 对于 数字 和 字符串 而言,赋值.浅拷贝 ...

最新文章

  1. window resize和scroll事件的基本优化
  2. 团队Blog功能改进
  3. java访问控制符_java中访问控制符的作用
  4. 大数据技术:Zookeeper分布式协调服务
  5. 给select设置默认值,在option在页面上已经写死的情况下
  6. 10.14 ssh:安全地远程登录主机
  7. Nginx负载均衡+转发策略
  8. 每日英文2013.06.19
  9. 外网访问FTP服务,解决只能以POST模式访问Filezilla的问题
  10. week06 12 我们准备数据 前端调用rpc 前后端联调一下
  11. Vue之路由beforeEach
  12. 【IBM Tivoli Identity Manager 学习文档】14 TIM组织结构设计
  13. POJ 1442 Black Box 优先队列
  14. wago edz 下载_用电子枪制造的WeakAuras Wago.io桥
  15. PHP接口_短信发送接口
  16. 高三班主任写给学生的一封信(在读大学的要看完)
  17. Python 爬虫实战(1)
  18. 【Spring】普通类获取Spring容器的bean的方法
  19. c++中赋值运算符重载
  20. matlab curve fitting工具箱,[matlab工具箱] 曲线拟合Curve Fitting

热门文章

  1. python关系图谱_利用Python+Gephi构建LOL全英雄间的关联图谱
  2. Emacs入门:重要的基本概念、基本读写操作以及一些常用的快捷键
  3. java bridge_JavaBridge
  4. 量化交易中N字型技术形态的实现,天勤,mindgo,python版同花顺,okex,huobi,binance等平台都可正常使用
  5. 【12306抢票神器】抢票啦—请收下这份2022元旦春节抢票攻略
  6. 解决虚拟机与宿主机不在同一个网段中,不能相互ping通的问题
  7. 杭州马开始坐不住,深圳腾窃喜,小龙信为何露出淫淫的笑容
  8. 核磁共振设备工作过程人体温度监控中应用的光纤温度传感器
  9. PostgreSQL中的索引—9(BRIN)
  10. IoT-Fast支持C#啦!教你对接HslCommunication