我有一个程序在画布中放置复选按钮,当选项(另一个复选按钮)被选中时。我有另一个选项(另一个复选按钮)来画线。为了画线,首先我应该选择checkbutton“draw a line”,然后单击放置在画布中的任何checkbutton,另一个单击画布上的任何地方。这个工作与我放置的第一个复选按钮,但如果我放置了几个复选按钮,它只从画布中的最后一个复选按钮的地方画线,而不从我选择的检查点画线。我相信我应该创建一个字典来记录我放置的复选按钮,这样我就可以回调它们了,但是我不知道如何实现它,有什么想法吗?from tkinter import *

root = Tk()

top_canvas = Canvas(root,width=1376,height=768, bg='light blue')

top_canvas.pack()

buttons = []

class CMD: #Auxilliary function for callbacks using parameters. Syntax: CMD(function, argument1, argument2, ...)

def __init__(s1, func, *args):

s1.func = func

s1.args = args

def __call__(s1, *args):

args = s1.args+args

s1.func(*args)

def color_checkbutton(pos): # define the colors of the checkbutton

checkbutton_available()

if buttons[pos][0].get() == 1:

buttons[pos][2].configure(bg='red')

else:

buttons[pos][2].configure(bg='green')

def place_checkbutton_in_canvas(e): # order to insert the checkbutton

if len(str(e.widget))<12: ## Don't place a new one if a checkbox was clicked

b = IntVar()

pos = len(buttons)

global xx, yy

xx = e.x

yy = e.y

buttons.append([b,pos, Checkbutton(top_canvas, variable=b, textvariable=b, command=CMD(color_checkbutton, pos))])

buttons[-1][2].place(x=xx, y=yy)

color_checkbutton(pos)

def place_checkbutton(): #to run when checkbutton is selected. Now the checkbutton will be placed where mouse clicked if choose_line is selected

top_canvas.bind('', place_checkbutton_in_canvas)

def checkbutton_available():

def drawline(ev):

flx = ev.x

fly = ev.y

def auxiliary():

lineor = top_canvas.create_line(xx, yy, flx, fly, width =3, fill = 'red')

auxiliary()

if chosen_option.get() == 2:

top_canvas.bind('', drawline)

chosen_option = IntVar()

choose_checkbutton = Radiobutton(top_canvas, text = "place checkbutton", variable=chosen_option, value = 1, command = place_checkbutton)

choose_checkbutton.place(x=10, y=10)

choose_line = Radiobutton(top_canvas, text = "draw line", variable=chosen_option, value = 2)

choose_line.place(x=10, y=100)

top_canvas.bind('', place_checkbutton_in_canvas)

root.mainloop()

python tkinter pack 同一行_用python tkinter中的一行连接2个复选按钮相关推荐

  1. python斗地主游戏源码_我用tkinter写的一个斗地主练习复盘python程序

    python写的斗地主模拟器使用说明,以及python的标准控件库tkinter的使用示例. http://vdisk.weibo.com/s/C5R1f8s9EVq2y 我用python写的一个斗地 ...

  2. python做审计底稿视频_最新Python教学视频,每天自学俩小时,让你offer拿到手软...

    2020最新Python零基础到精通资料教材,干货分享,新基础Python教材,看这里,这里有你想要的所有资源哦,最强笔记,教你怎么入门提升!让你对自己更加有信心,重点是资料都是免费的,免费!!! 如 ...

  3. python的gui界面文件管理_【Python】学生信息管理系统_开发(GUI界面)

    学生信息管理系统的开发 模块:  1. 系统登录界面   -->   logingui.py 2. 系统主界面     -->    maingui.py 3. 学生明细界面  --> ...

  4. python文本结构化处理_在Python中标记非结构化文本数据

    python文本结构化处理 Labelled data has been a crucial demand for supervised machine learning leading to a n ...

  5. python数据写入表格生成图片_使用Python制作一个GUI界面,将随机生成的姓名存入到Excel文件中...

    前面内容,我们详细介绍了如何使用Python生成一定数量的随机姓名. 生成一些随机姓名 如何用Python生成若干个随机姓名?男女取名有方法,不能千篇一律 之前,也提到过,我们在一些项目中,需要若干个 ...

  6. 88是python语言的整数类型_少儿Python编程_第三讲:常量变量和数据类型

    无论使用哪一种编程语言,甚至是学习数学.物理,都需要掌握常量.变量.表达式的概念和用法.本讲将带领读者进入编程世界,学习程序的基本元素. 3.1 基本数据类型 基本数据类型有数值型.布尔型和字符型.它 ...

  7. python输出欢迎某某某_煎酿三宝中的三宝指(          )

    [判断题]函数中必须包含 return 语句. [单选题]Python语句print(type(lambda:None))的输出结果是 [论述题]作业包括:联通logo.五角星图标 [论述题]字体设计 ...

  8. python制作解压工具_使用python制作一个解压缩软件

    python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...

  9. python输出一个月日历表_关于python一个月总结

    今天是6月16了,我在上个月19号的时候敲下了人生中的第一行python的hello world代码.碰巧今天周末,明天又开始忙碌的上(mo)班(yu).趁着现在对这个月的学习做一个总结,也是理清思路 ...

最新文章

  1. spring 下载地址
  2. ajax响应码,jQuery 使用$ .ajax()处理HTTP响应代码
  3. c++中sin,cos,arcsin等和在C/C++中使用pi (π) 值
  4. pandas创建DataFrame
  5. java 调用谷歌翻译API(直接可以使用)
  6. MSN关闭前爆发盗号“高潮” 中国用户面临选择
  7. 咸鱼CAD笔记—CAD快捷键
  8. BitComet下载做种方法之完全解析- -
  9. win10聚焦功能失效的解决方法
  10. 培训机构要不要去 适合谁去
  11. 基于深度学习的遥感影像语义分割数据预处理
  12. 强化学习系列(1) 基本概念
  13. VSC的基础使用(插件和设置)
  14. Java实现 LeetCode 292 Nim游戏
  15. 双极晶体管是什么?MOS FET和CMOS的关系?
  16. [多图]华硕EeePC 900拆解图
  17. Android 动画学习笔记(二)
  18. 缓存代理服务器Squid----这一个介绍得还不错
  19. 怀旧服显示服务器已满,魔兽世界怀旧服还未开启就已人满为患
  20. php请求找不到tpl文件

热门文章

  1. (JAVA)Map集合
  2. QT安装配置是注意事项
  3. 彼得原理(The Peter Principle)
  4. VSTO 得到Office文档的选中内容(Word、Excel、PPT、Outlook)
  5. phpMyAdmin导入大的sql文件
  6. 谈谈基于SQL Server 的Exception Handlingp[下篇]
  7. 数据库调优都涉及哪些方面
  8. [小技巧][JAVA][转换]List, Integer[], int[]的相互转换
  9. unit类型是什么?_项目中有用过锁吗?能解释一下什么是AQS(AbstractQueuedSynchronizer)吗?...
  10. windows游戏编程_苹果的Mac和微软的Windows该如何选择?