丸丸 发表于 2020-11-13 11:21:15

python中tkinter的事件

def get(event):
   
    x1 = event.y // 21                  #将宽度与高度转化为字符索引格式
    y1 = event.x // 7
    global pos1
    pos1 = str(x1 + 1) + '.' + str(y1)          #创建的标签索引开始的位置
   
def release(event):
   
    x2 = event.y // 21
    y2 = event.x // 7
    global pos2
    pos2 = str(x2 + 1) + '.' + str(y2)          #创建标签索引结束的位置
   
text.bind( '<ButtonRelease>', release)
text.bind( '<Button-1>', get)

text.tag_add('link', pos1, pos2)
text.tag_config('link')

大佬们求解以下这个题目,想对鼠标选中的文本进行标签,利用左键按下和鼠标释放的事件对选中文本的位置进行标记,初始和终结位置是pos1,pos2,但是定义了全局变量之后,也有用其他方法,老是说我的pos1没有被定义,想了很久还是不行
鱼币不多,望笑纳

Twilight6 发表于 2020-11-13 11:25:53



试试在全局空间加上:

pos1,pos2 = None,None

心驰神往 发表于 2020-11-13 14:48:36

{:10_254:}

丸丸 发表于 2020-11-13 21:39:21

Twilight6 发表于 2020-11-13 11:25
试试在全局空间加上:

不行哎, 最后pos1和pos2的值还是没有转换过来,都是None

Twilight6 发表于 2020-11-13 22:01:08

丸丸 发表于 2020-11-13 21:39
不行哎, 最后pos1和pos2的值还是没有转换过来,都是None



那你发个完整代码

疾风怪盗 发表于 2020-11-13 22:11:22

你最好贴下全部代码,方便查错

你没打印看下x1y1的值么?这个运算是否正确?
像这样获取坐标,不用申明为全局变量,用个全局变量空列表来添加,会不会更方便点?
页: [1]
查看完整版本: python中tkinter的事件