Python学习笔记·交互式图形编程

注:在校计算机学生一名,菜鸟一枚,最近开始学习Python的基础知识希望有什么不对的地方各位大佬能够不令赐教!
课程是在中国大学MOOC上学的,有兴趣的同学可以自行搜索
Ps:整理是自己看了一些资料和博客之后写的,尽量将原博客的地址给出来让大家参考,有一些时间可能有些远了还请大家见谅

  • 图形图像应用
  • Python图形工具包-Graphics
  • Python图形工具包-Tk模块
  • Python图形工具包-Turtle

图形图像应用

图形用户界面 (Graphical User Interface,GUI )
图形对象
照片管理软件、视频播放软件

图形显示

  • 图素法 ——矢量图: 以图形对象为基本元素组成的图形,如矩形、圆形
  • 像素法——标量图 :以像素点为基本单位形成图形

Python图形工具包-Graphics

如果你的电脑里没有graphics.py你可以新建一个并且复制下列网站的代码到你安装文件的lib(….你定义的路径….\Python\Lib)下面。
http://mcsp.wartburg.edu/zelle/python/graphics.py

运行如下代码:

from graphics import *
win = GraphWin() 

图形窗口

  • 点(像素)的集合
    GraphWin对象尺寸默认值 : 高200像素,宽200像素。
  • 点对象Point :图形模块中最简单的对象 参考坐标系定位。 坐标(x,y)
  • 参考坐标系
    Graphics\Tkinter 中点(0,0)表示屏幕左上角,X轴正方向为从左到右,Y轴正方向为从上到下。默认窗口大小为200*200
from graphics import *
win = GraphWin()
#就会跳出一个图形窗口
p1=Point(100,100)
p2=Point(150,80)
p1.draw(win)
p2.draw(win)
#画两个点

图形对象的概念
+类的实例
类定义了实例包含的属性和方法

交互式图形用户接口
+Graphics模块
 隐藏了底层事件的处理机制,
 提供了获得用户在窗口中的输入
+ 捕捉鼠标点击
+ 处理文本输入

例如连续点击10次鼠标,返回其坐标值的代码运行如下.

from graphics import *
def main():win=GraphWin("点我")for i in range(10):p=win.getMouse()print(p.getX(),p.getY())
if __name__=='__main__':main()

除了点对象还有其他一些对象(具体可以打开graphics.py的代码看一下其中定义)
Text对象: setText()和getText()
Entry对象: setText()和getText()
+ 内容可以被用户修改

GraphWin对象
窗体对象
一个程序可以定义任意数量的窗体
实现函数: GraphWin()
 默认标题是“Graphics Window”
 默认大小为200*200
GraphWin对象常用方法 :

图形对象
点、线段、圆、椭圆、矩形、多边形以及文本
 默认初始化
 黑色边框
 没有被填充
图形对象通用方法 :

Point对象方法

Line对象方法

Circle对象方法

Rectangle对象方法

Oval对象方法

Polygon 对象方法

Text 对象方法

图形颜色
Python中颜色由字符串指定
 很多颜色具有不同深浅
 红色逐渐加深
+  ‘red1’‘red2’‘red3’ ‘red4’

color_rgb(red,green,blue)函数
#设定颜色数值获得颜色
#三个参数为0-255范围内的整数
#返回一个字符串 

Python图形工具包-Tk模块

创建GUI程序的基本步骤为:
1、导入Tk模块.
2、 创建GUI应用程序的主窗口.
3、添加控件或GUI应用程序.
4、进入主事件循环,等待响应用户触发事件.

15种常见的 Tk 控件
Button, Canvas, Checkbutton, Entry, Frame, Label, Listbox, Menubutton, Menu,Message,Radiobutton, Scale Scrollbar, Text, Toplevel, Spinbox PanedWindow, LabelFrame, tkMessageBox

共同属性
 Dimensions :尺寸
 Colors:颜色
 Fonts:字体
 Anchors:锚
 Relief styles:浮雕式
 Bitmaps:显示位图
 Cursors:光标的外形

Tkinter三种几何管理方法
 pack()
 grid()
 place()

创建GUI应用程序窗口代码模板

from tkinter import *
tk =Tk()
#...此处台添加控件代码
tk.mainloop()

实例1

from tkinter import *
tk =Tk()
label=Label(tk,text="Tkinter")#一个文本内容
button=Button(tk,text="Click me")#一个按钮
label.pack()#显示
button.pack()#显示
tk.mainloop()

实例2–响应用户事件示例

from tkinter import *
def processOK():print("OKOKOK!")def processCancel():print("Canceled")def main():tk =Tk()buttonOK=Button(tk,text="OK",fg="red",command= processOK )buttonCancel=Button(tk,text="Cancel",fg="yellow",command= processCancel )buttonOK.pack()#显示buttonCancel.pack()#显示tk.mainloop()if __name__=='__main__':main()


实例3–显示文字、图片

from tkinter import *
tk =Tk()
canvas=Canvas(tk,width =400,height=400 )#创建画布
canvas.pack()
canvas.create_text(100,40,text="TyxMaek1997-2017",fill="blue",font=("Times",16))
myImage=PhotoImage(file="TyxMaek.gif")#只支持gif格式图片
#并且你的图片要么在你的程序代码所在的目录要么是相对路径,否则就会报错
#报错后修改后需要重启编译器才能继续执行否则就会一直报错
canvas.create_image(10,70,anchor=NW,image=myImage)
tk.mainloop()

Python图形工具包-Turtle

Turtle 库 是Python内置图形化模块其安装文件Turtle.py文件在安装目录的Lib文件夹下。是用画笔绘制图形。原点在正中间(0,0)

控制画笔绘制状态方法

Turtle运动方法

Turtle颜色和字体绘制方法

Python学习笔记·交互式图形编程相关推荐

  1. Python学习笔记三之编程练习:循环、迭代器与函数

    Python学习笔记三之编程练习 1. 编程第一步 # 求解斐波纳契数列 #/user/bin/python3#Fibonacci series:斐波那契数列 #两个元素的总和确定了下一个数 a,b= ...

  2. Python学习笔记:IO编程StringIO和BytesIO

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  3. Python学习笔记——开发图形界面wxPython、PyQt、PySide选哪一个?

    学习Python,就不得不提一下Python的图形界面开发,如果只用命令行写程序,用户体验不太好,难以胜任复杂的人机交互场景.Python的图形界面开发库常用的有:Tkinter.wxPython.P ...

  4. Python学习笔记:Io编程序列化

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  5. Python学习笔记:面向对象编程(4)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  6. Python学习笔记:面向对象编程(3)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  7. Python学习笔记:面向对象编程(2)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  8. Python学习笔记:面向对象编程(1)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  9. 【廖雪峰Python学习笔记】面向对象编程OOP

    面向对象编程 OOP:Object Oriented Programming 程序的基本单元:对象 [ = 数据 + 操作数据的函数] [属性 + 方法] 三大特点:数据封装.继承和多态 OPP中的计 ...

最新文章

  1. rundll32.exe文件详解
  2. Windows 下面 redis 发布为服务的官方方法
  3. Cloud Test 单页面即时监测功能上线!
  4. 【Web安全】先进技术WebSocket下安全测试
  5. 在DataGrid中將RowHeader 加上文字...
  6. python PyQt5 QSlider类(滑块)
  7. NOIP 2018 流水账
  8. 关闭uboot MMU 会导致android2.3 S5pv210 系统不稳定?!why
  9. activiti api文档_【白银人机】Activiti 工作流从入门到入土:完整 hello world 大比拼(API 结合实例讲解)...
  10. 【BZOJ28431180】极地旅行社,LCT练习
  11. MQTT——具有.NET Core的消息队列遥测传输协议
  12. 使用bcryptjs对密码加密时,其校验原理是怎样的?
  13. 高校后勤管理系统java代码_《高校后勤管理系统的设计与实现》论文笔记二
  14. 多智能体深度强化学习值分解方法总结(1)——VDN/QMIX/QTRAN/Qatten
  15. postman电脑版无法安装_Postman系列一:Postman安装及使用过程中遇到的问题
  16. WPS_Word空白页删除
  17. Invalid injected android support version ‘202.7660.26.42.7322048‘, expected to be of the form ‘w.x.y
  18. 基于时空大数据的GIS技术,推动网格化管理创新发展
  19. 商汤科技面试——CV算法面经
  20. 本人已搬至博客园,感谢CSDN的一路陪伴

热门文章

  1. win10开机就黑屏,等近一分钟左右才显示桌面的解决方法
  2. Wordpress插件wp-automatic采集频率设置成1秒每次
  3. 骑行318、 2016.7.24
  4. [最新通知]今日17:00-19:00将不能访问博客园
  5. 我鼓捣的数据库数据生成word文档的方法!
  6. 【JLink仿真器】盗版检测、连接故障、检测不到芯片问题
  7. OneNote闪退解决方案
  8. 如何在html网页内引入css样式
  9. 水手猴子和椰子程序matlab,[转载]水手分椰子类型题通解公式及推导(中英对照修改版)...
  10. ROS机器人应用(1)—— 搭建ROS虚拟机环境