![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
tkinter
文章平均质量分 60
geng_zhaoying
72年北京大学无线电系学生,76年河北电子研究所技术员,80年北方交通大学电信系研究生,83河北电子研究所技术员,1996河北师范大学计算机系系主任、教授,2008年退休随女儿在北京,2021年73岁
展开
-
数字华容道-将显示数字、单击数字事件绑定及事件处理函数封装在python类中以简化编程
创建新类能显示数字华容道中数字并能操作数字,新类用canvas的text实例显示数字,绑定的单击数字事件处理函数是类实例方法,使其能直接访问类中数据,完成对被点击数字的移动和输赢判断。避免用复杂方法将被点击数字信息传递给单击数字事件处理函数,从而简化编程。原创 2021-05-24 21:05:57 · 286 阅读 · 3 评论 -
用Python shelve将canvas图形图像保存为文件及从文件读出图形图像重新显示的方法
python可将canvas图形图像保存为postscript文件,但没有读该类型文件方法。本文用shelve将canvas图形图像数保存为能读写的文件。使在保存未完成设计后,再次取出数据继续工作成为可能。这对于设计图形图像要经常移动的类似EDA程序,是十分必要的。原创 2021-05-11 15:56:37 · 606 阅读 · 0 评论 -
用python实现win10画图程序画选择框、复制、剪切、粘贴及拖动选择框内图形或粘贴后图形到指定位置
python PIL 用函数crop和paste支持位图剪贴功能,能实现复制、剪切和粘贴等基本功能,剪贴功能还应包括用鼠标拖动画选择框,用鼠标拖动选择框内图形和粘贴后图形到指定位置。本文介绍所有这些功能的实现方法。原创 2021-05-04 15:24:31 · 1775 阅读 · 0 评论 -
win10画图程序拖动鼠标画图形功能用python实现的思路
win10画图程序拖动鼠标画各种图形是其最重要的功能,该功能也可用python实现。不建议用鼠标拖动位图中图形来实现,这将使程序变得复杂。较好方法是在canvas上先创建图形类实例,拖动这个类实例到指定位置后,再把这个图形保存到位图中,这样做可极大简化程序。原创 2021-04-29 16:11:55 · 727 阅读 · 0 评论 -
用find_overlapping()替换find_closest()解决博文“Python实现用鼠标拖动Canvas上的图形使其移动”的程序问题
博文“Python实现用鼠标拖动Canvas上的图形或图像使其移动”程序有一个问题,鼠标点击图形外的邻近点,也能移动这个图形。用Canvas的find_overlapping方法替换find_closest方法,能解决该问题。原创 2021-04-26 21:09:35 · 553 阅读 · 0 评论 -
用python tkinter canvas显示PIL Image类图形图像
Python PIL可以做很多和图像处理相关的工作。用canvas显示PIL Image类图形图像,可将应用程序中图形图像的显示和处理两部分集合在同一程序中。使用该方法,不但可以在屏幕显示单张图片,可以创建多个Canvas同屏显示多张图片,也可分页,每页显示一张图片。原创 2021-04-21 20:27:51 · 2029 阅读 · 0 评论 -
Python tkinter canvas方法的Bitmap、stipple参数和组件Bitmap属性的使用以及xbm文件
Python能显示图像的组件有属性bitmap,tkinter Canvas多个方法有参数bitmap和stipple。这些bitmap和stipple不能赋值位图类实例,也不能赋值bmp格式文件名,仅能赋值xbm格式文件名。本文介绍如何将xbm文件名赋值给方法的Bitmap或stipple参数或组件Bitmap属性来显示位图图形,并介绍xbm文件用途及创建方法。原创 2021-04-20 19:31:38 · 1624 阅读 · 2 评论 -
用方法create_bitmap在Canvas上生成xbm文件图像创建win10风格工具栏
win10程序工具栏由多个平面图形组成。用Python也可实现该风格工具栏,可创建多个Canvas实例,一个作为工具栏容器,用create_bitmap方法在这个Canvas上生成自制xbm文件定义的图像,单击图形完成指定工作。原创 2021-04-14 20:23:40 · 522 阅读 · 0 评论 -
Python实现用鼠标拖动Canvas上的图形或图像使其移动(有问题参见后边文章)
Canvas上可能有许多图形或图像,要用鼠标拖动图形或图像使其移动,首先要判断鼠标是否点击到图像或图形上,如点击到图像或图形上,要找到其ID,然后用Canvas方法move拖动指定ID的图形或图像到新位置。原创 2021-04-13 19:45:15 · 4137 阅读 · 0 评论 -
用Python实现win10画图程序拖动鼠标画各种形状多边形功能
如一个多边形放到矩形中,矩形左上角和右下角坐标为(x0,y0),(x1,y1),则多边形顶点坐标(x,y)=(x0+m*(x1-x0),y0+m*(y1-y0)),0<m和n<1。如(x0,y0)和(x1,y1)是窗体上两个点坐标,用该公式可得到多边形所有顶点坐标,从而能在窗体上画出多边形。如(x0,y0)固定,(x1,y1)随鼠标移动而改变,就可以实现拖动鼠标画多边形。原创 2021-04-08 10:42:15 · 1386 阅读 · 1 评论 -
用36条Python语句实现在Canvas上用拖动鼠标方法画直线、矩形和椭圆(圆)
实现在Canvas上用拖动鼠标方法画直线、矩形和椭圆。以画矩形为例说明实现基本思路,首先在鼠标单击处创建一个小矩形,鼠标左键按下移动时,用Canvas方法coords移动、放大或缩小这个矩形,鼠标抬起固定这个矩形。原创 2021-04-06 14:44:44 · 2178 阅读 · 0 评论 -
python tkinter canvas的方法itemcget、itemconfig和type的使用
itemcget方法返回Canvas上某对象的某个属性值,例如text对象字体颜色。itemconfig方法可修改Canvas上某对象的一个或多个属性值,例如text对象字体颜色和显示的内容。type方法返回Canvas上某对象的类型,例如text对象返回"text"。原创 2021-04-01 11:09:58 · 4866 阅读 · 0 评论 -
把python tkinter canvas中的图形图像保存为通用格式文件的5种方法
在python tkinter Canvas中画图和显示图像,可以将所画图形和显示图像保存为postscript类型文件,这不是通用的文件格式。本文介绍将其保存为通用格式文件的5种方法。原创 2021-03-29 19:21:04 · 6288 阅读 · 1 评论 -
如何判断数字华容道中随机排列的数字阵列是否有解
数字华容道NxN数字随机排列的阵列有解的充要条件是:N为奇数,总逆序数为偶数,N为偶数,总逆序数为奇数。即满足此条件,数字随机排列阵列,能通过移动数字方格,使阵列的数字按顺序排列。原创 2021-03-22 19:08:42 · 7165 阅读 · 1 评论 -
数字华容道游戏_用Python tkinter Canvas实现
仅仅46条语句,用Python tkinter Canvas实现3x3数字华容道游戏,进一步介绍Canvas的事件绑定、tag属性、获得Canvas中各种对象的坐标等功能。通过这个例子能更深入地学习Canvas。原创 2021-03-15 19:57:13 · 767 阅读 · 0 评论 -
人机对弈黑白棋游戏用Python tkinter的Canvas实现图形界面
用Python tkinter的Canvas编写图形界面黑白棋游戏,界面能做的很漂亮,游戏运行时不要求安装pyGame库,采用事件驱动减少占用CPU时间,使用Canvas中的对象tag属性,用较少代码较容易地删除Canvas中各种对象和为玩家提供提示标志。原创 2021-03-12 21:08:12 · 1937 阅读 · 0 评论 -
用Python tkinter的Canvas设计的人机对弈棋类游戏中使双方棋子前后出现
用Python tkinter的Canvas设计的人机对弈棋类游戏中,鼠标单击玩家放棋子,为使双方棋子前后出现,在另一线程中每1秒查1次是否该计算机放子,如是发一自定义事件,启动该自定义事件函数,执行计算机放子操作,模拟两个人在下棋。原创 2021-03-09 06:31:56 · 345 阅读 · 1 评论 -
在Python tkinter的Canvas画布上删除所有相同tag属性对象的方法
玩围棋要在棋盘上放置若干棋子。重玩游戏要删除所有棋子,保留画布。如创建棋子时增加属性tag="a1",可用语句delete("a1")删除所有棋子,而保留画布。原创 2021-03-02 21:34:22 · 958 阅读 · 1 评论 -
在Python tkinter的Canvas画布上增加、移动和删除棋子
有棋盘后,在Python tkinter的Canvas画布上增加、移动和删除棋子原创 2021-02-25 17:09:19 · 912 阅读 · 1 评论 -
使用Python tkinter设计棋类游戏思路及增加棋盘背景
介绍了使用Python tkinter设计围棋、五子棋、象棋和国际象棋等棋类游戏的思路,以及用Canvas组件增加棋盘背景的方法。原创 2021-02-25 15:19:36 · 1706 阅读 · 0 评论 -
使用python自定义事件在一个程序中实现闹钟、时钟、计时器和秒表的方案
用python设计一个类似手机和计算机“闹钟和时钟”程序的方案,包括在子线程用自定义事件驱动主线程“闹钟和时钟”的4个功能,用Notebook组件实现4个功能界面,以及在GUI界面程序产生提醒声音。原创 2020-11-08 20:55:47 · 1116 阅读 · 0 评论 -
在定义类时将事件绑定到类的方法并用该方法调用类外部函数且将属性作为实参
在定义类时将事件绑定到类中方法,创建属性:编号。用该方法调用类外部函数且将类属性编号作为实参,使该函数能找到按钮引用地址以便能在类外部修改按钮数据和行为。如将该方法用于扫雷程序,将使所有鼠标右击按钮事件都用同一个事件函数,使扫雷程序效率更高。原创 2020-10-29 16:57:01 · 272 阅读 · 0 评论 -
如何保证Toplevel创建的非模式对话框只打开一个
记事本打开查找对话框,按钮禁用不允许打开第2个,关闭对话框按钮又变为可用。本文解决用Toplevel窗体右上角X按钮关闭对话框时,使按钮又能使用的方法。原创 2020-10-22 11:13:55 · 600 阅读 · 0 评论 -
用python tkinter组件实现扫雷游戏
用python tkinter组件实现扫雷游戏,仅用198条语句。原创 2020-10-15 20:13:05 · 2937 阅读 · 6 评论 -
在python tkinter窗口实现多线程秒表的两种方法
在扫雷游戏中,需要一个秒表,记录扫雷用的秒数。秒表必须在子线程中,才会不干扰扫雷。本文介绍实现秒表的两种方法。原创 2020-10-05 17:45:05 · 1420 阅读 · 2 评论 -
用python tkinter 129条语句实现2048游戏
使用tkinter Label控件组成4*4矩阵显示2048游戏数字。将4*4矩阵中显示的数字保存在一个2维列表中,列表各项的2个序号和4*4矩阵对应项的行列号有对应关系,因此将键盘对2048游戏数字矩阵的操作转化为对2维列表数据的操作。原创 2020-10-01 15:22:34 · 891 阅读 · 0 评论 -
使鼠标右击和双击按钮事件使用同一事件函数
用tkinter的上百个按钮组成矩阵实现挖雷游戏,按钮需响应鼠标右键单击、鼠标左键单击和双击事件。如用前边博文的方法增加事件函数,鼠标右键单击和鼠标左键双击事件要定义不同事件函数。本文介绍两事件用同一事件函数的方法,用来节约计算机资源。原创 2020-09-19 18:21:30 · 537 阅读 · 0 评论 -
增加鼠标右击按钮事件函数包含event和其它参数
准备用tkinter的按钮编写挖地雷游戏,按钮有上百个。除了单击(鼠标左击)按钮完成某工作,还需鼠标右击按钮完成其它工作。这需要为上百个按钮增加鼠标右击按钮事件函数。本文介绍实现的方法。原创 2020-09-15 10:43:05 · 469 阅读 · 0 评论 -
对用python实现的非函数计算器的改进
对前边博文用python实现的非函数计算器中出现的错误和不合理的操作,给出详细说明,并给出解决方法,最后给出修改后的全部代码,使读者可以和前边博文中的代码进行比较。原创 2020-09-13 11:37:37 · 264 阅读 · 0 评论 -
49条python语句实现非函数计算器(发现错已改)
用python的tkinte实现了一个能完成加、减、乘、除,类似手机中的的计算器,能自动改正输入错误,仅用了49条语句。原创 2020-09-03 10:47:49 · 291 阅读 · 0 评论 -
用python tkinter编写程序中的函数mainloop的功能
用事件和事件驱动概念解释python tkinter框架的工作方式以及函数mainloop的功能。原创 2020-09-02 10:39:02 · 10914 阅读 · 0 评论 -
python3.8的tkinter按钮事件函数实现多个参数另一种方法
该法在每一次循环生成按钮时,同时生成一个函数作为该按钮的单击事件函数,该函数的参数都有默认值,也就传递了实参。用command指定单击按钮调用的函数,调用时无实参,即令事件函数使用默认值。为了节约内存,可令所有事件函数都调用同一函数。原创 2020-08-27 16:50:45 · 1860 阅读 · 0 评论 -
用39条Python语句完成“数字华容道”游戏
原以为用Python编写“数字华容道”游戏可能需要很多代码,完成后发现只用了39条语句,可见Python的强大。编程的思路如下,使用9个tkinter库的Button按钮,按3行3列排列,每个按钮的标题是1到8和空白中的一个,初始标题所显示的数字和空白随机排列。当一个按钮被单击后,调用事件函数,该函数有两个参数,该按钮的所在位置的行列号。在函数中首先判断该按钮(行号为x,列号为y)是否和标题为空白的按钮(行号为x0,列号为y0)相邻,相邻条件是(x-x0)绝对值+(y-y0)绝对值=1,如相邻则两个按钮的标原创 2020-08-19 15:12:29 · 3229 阅读 · 2 评论 -
python3.8的tkinter按钮事件函数实现多个参数
编程中有时事件函数需要参数。例如编写计算器程序,至少需要0到9这10个按钮。如用10个语句建立按钮对象,编写10个事件函数,显然没有必要。比较好的方法是,用循环方法建立对象,将0到9作为键值和对应按钮对象组成键值对保存到字典中,所有按钮共用一个事件函数,在建立对象时,将对应的0到9传递给事件函数,事件函数根据参数很容易知道是那个按钮被按下,做不同的处理。原创 2020-08-18 15:41:46 · 2802 阅读 · 0 评论