代谢性酸中毒原因

首页 » 常识 » 诊断 » Python使用tkinter制作一个简
TUhjnbcbe - 2024/5/8 18:59:00

Python有很多GUI库,tkinter作为一款入门级的图形库,基本具备了图形界面的大部分元素,如果结合ttk、Pmw库使用的话,其功能就得到了扩展,使用这些库基本能构建简单的图形界面应用。但是,tkinter唯一美中不足的是它的性能问题,它不具备如QT等一些第三方库的性能,在同一应用程序中设计了关于获取系统性能的一些功能,tkinter就显得非常慢(参加Python高手养成关于系统性能查看器制作的内容),虽然其性能可以通过不同的方法得到提升,但这是后话,我们后续章节进行讨论。今天结合一个实例,带大家一起见识一下tkinter的基本使用方法。

使用tkinter制作一个带有菜单的绘图工具,菜单中选择绘制图形的内容(程序中我们建立了绘制圆、椭圆、矩形、直线等图形的方法),还可以使用菜单命令清除绘制的图形界面,菜单提供帮助信息(主要显示如何绘制图形的方法),菜单弹出框显示应用程序版本信息。

界面基本功能如下图

图形界面布局

图形绘制效果如下

使用程序绘制的图形

点击清空画板后图形消失

画板清空效果

菜单其他内容如下

界面帮助信息

程序主要难点有四个

如何通过菜单控制绘制不同的图形(我们使用布尔变量值控制绘制不同的图形)获取鼠标起始位置和释放鼠标位置,然后在两点之间绘制相应图片(在这里使用函数绑定鼠标点击和鼠标释放的事件,然后获取事件中鼠标的位置信息)在Canvas中显示帮助信息,如何清除(结合菜单控制清除内容是个不错的选择)如何将上述内容封装到画图类中(类的封装,实测封装效果不太好,欢迎大家留言讨论哦)下面,我们对这个绘图类进行编码

#!/usr/bin/envpython#coding:utf-8importmathfromtkinterimport*fromtkinterimportmessageboxfromtkinterimportsimpledialogclassPainter(Tk):def__init__(self,startX=0,startY=0,curX=0,curY=0,endX=0,endY=0,line=False,rect=False,oval=False,arc=False,circle=False,polygon=False):Tk.__init__(self,)self.title(绘图工具v1.0)self.geometry(x)self.resizable(width=False,height=False)#布尔值指定画相应的图形self.line=lineself.rect=rectself.oval=ovalself.arc=arcself.circle=circleself.polygon=polygon#鼠标位置信息参数self.startX=startXself.startY=startYself.curX=curXself.curY=curYself.endX=endXself.endY=endY#初始化控件self.createWidgets()defcreateWidgets(self):self.menubar=Menu(self)self.canvasmenu=Menu(self.menubar,tearoff=False)self.canvasmenu.add_

1
查看完整版本: Python使用tkinter制作一个简