Python学习笔记·交互式图形编程
注:在校计算机学生一名,菜鸟一枚,最近开始学习Python的基础知识希望有什么不对的地方各位大佬能够不令赐教!
课程是在中国大学MOOC上学的,有兴趣的同学可以自行搜索
Ps:整理是自己看了一些资料和博客之后写的,尽量将原博客的地址给出来让大家参考,有一些时间可能有些远了还请大家见谅
图形图像应用 Python图形工具包-GraphicsPython图形工具包-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-",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颜色和字体绘制方法