gpt4 book ai didi

python - 如何从文本小部件中单独检索行

转载 作者:太空宇宙 更新时间:2023-11-04 00:01:02 25 4
gpt4 key购买 nike

我试图分别检索文本小部件中的每一行,我有 3 个 Container 类实例,第一个实例按预期打印数据,但第二个实例返回第一行的副本

我正在使用 object.get('current linestart', 'current lineend') 分别返回新行

完整代码:https://pastebin.com/mLR3zbFg

class Container(tk.Frame):
def __init__(self, parent = None, priority = 3, bg = 'bisque'):
self.inpList = []
self.b = tk.Button(self.f, text = 'add', command = lambda: self.add_task(priority))
def add_task(self, priority): # refer 1.2_text for implementation
finished = False
self.t = tk.Text(self.f)
self.t.configure(height = 10, wrap = 'word')
self.t.bind("<Return>", self.save_task)
self.t.pack(fill = tk.X)


def print_all(self):
print(self.inpList)

def save_task(self, event):
td = self.t.get('current linestart', 'current lineend')
self.inpList.append(td)

if __name__ == '__main__':
window = tk.Tk()
window.minsize(300, 600)

p1 = Container(window, priority = 1)
p2 = Container(window, bg = 'blue', priority = 2)
p3 = Container(window, bg = 'red', priority = 3)

window.mainloop()

最佳答案

figbeam 的答案可能有效,但如果您输入了很多文本并且您似乎想单独阅读每一行,那就不太好了。我认为这是一个更好的解决方案:

根据 the docs , current 似乎没有达到您的期望;也就是说,current 会让你找到离鼠标最近的角色(而且只有当你真正移动鼠标时)。这可能是您注意到下方小部件的奇怪行为而不是顶部小部件的原因。

一个更好的解决方案是移动到文本的末尾,然后向上移动一行,然后使用您之前使用的 linestartlineend 选择器。即变

td = self.t.get('current linestart', 'current lineend')

td = self.t.get('end - 1 lines linestart', 'end - 1 lines lineend')

在此更改后,事情应该按预期工作!

关于python - 如何从文本小部件中单独检索行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55739436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com