tkinter - tkinter 中的绑定问题
问题描述
之前问过这个问题,但我不清楚我在问什么。写了一个小程序,基本上是打开一个文本域,插入三行数据。
通过 while 循环为每一行添加了一个标签。
当我尝试通过循环向标签添加绑定时 - 没有任何反应,程序根本没有响应。如果我对每个键绑定进行硬编码,它就像一个魅力。
我究竟做错了什么?希望我在这里输入代码时没有弄乱缩进
#!/usr/bin/en python
# *-* coding: utf-8 *-*
from tkinter import *
class guidelen:
def __init__(self, master):
self.master = master
self.master.title("programmet")
self.master.geometry("400x400")
self.populate()
def populate(self):
self.tekstfelt = Text(self.master)
self.tekstfelt.pack(fill=BOTH, expand=True)
setninger = ["første setningen","andre setningen", "tredje setningen"]
start = 0
posisjon = 1
while start < len(setninger):
pos = str(posisjon) + ".0"
b = len(setninger[start])
pos2 = str(posisjon) +"."+ str(b)
setning = setninger[start] + "\n"
self.tekstfelt.insert(pos, setning)
self.tekstfelt.tag_add(setning, pos, pos2)
#self.tekstfelt.tag_bind(setning, "<Button-1>", lambda start:self.utskrift2(start))
posisjon += 1
start += 1
tagger = self.tekstfelt.tag_names()
start = 1
indeks = 0
b = len(tagger)
while start < b:
self.tekstfelt.tag_bind(tagger[start], "<Button-1>", lambda indeks: self.utskrift2(indeks))
indeks += 1
start += 1
def utskrift2(self, event):
if event == 0:
print("Taggen til første linjen")
if event == 1:
print("Taggen til andre linjen")
if event == 2:
print("Taggen til tredje linjen")
if event == 3:
print("Taggen til fjerde linjen")
if __name__ == "__main__":
start = Tk()
guidelen(start)
start.mainloop()
解决方案
推荐阅读
- javascript - 无法调用javascript中对象内部定义的方法
- amazon-web-services - 在 AWS Appsync 中手动设置当前用户凭证
- android - 如何在带有活动的子流中提供后退导航
- docker - 如何取消设置 Docker 映像标签?
- git - Git镜像问题
- mysql - 从 MySQL 查询大数据并保存到 CSV
- sql-server - SSRS:如何查找哪些报表有子报表?
- python - 使用 Bokeh 在地图图块顶部添加等值线地图
- javascript - VueJS 2 - 如何轻松地在兄弟组件之间进行通信?
- vb.net - 在所需实例 VB.NET 中查找网页源