【发布时间】:2014-07-24 19:29:58
【问题描述】:
我正在构建一个具有 2 个文本小部件的 GUI。 (我的意思是它里面有很多东西,但为了这个问题,让我们把它留在 2 个文本小部件上)。我想要做的是,当我用箭头键滚动一个文本小部件时,另一个文本小部件也会同时滚动。我可以使用滚动条(代码中未显示)来完成此操作,但不能使用箭头键。我希望同时在两个文本区域上的箭头键正常行为。也就是说,当它到达可视文本的底部时,它会向下滚动,但如果我向上滚动,文本不会只移动箭头。你知道,就像任何普通的文本编辑器一样。所以问题是我如何做到这一点?这是我的代码的 sn-p。
#create Text widgets
descriptionTextField = Text(mainframe, width=40, height=10)
descriptionTextField.grid(column=2, row=5, sticky=(W))
descriptionTextField.bind("<Down>", OnEntryDown)
descriptionTextField.bind("<Up>", OnEntryUp)
pnTextField = Text(mainframe, width=40, height=10)
pnTextField.grid(column=3, row=5, sticky=(W))
pnTextField.bind("<Down>", OnEntryDown)
pnTextField.bind("<Up>", OnEntryUp)
#here are what I have for code that **DOESN'T** do what I want.
def OnEntryDown(event):
descriptionTextField.yview_scroll(1,"units")
pnTextField.yview_scroll(1,"units")
def OnEntryUp(event):
descriptionTextField.yview_scroll(-1,"units")
pnTextField.yview_scroll(-1,"units")
必须有一种方法可以找出下一个箭头键何时大于可视区域(在本例中为 10),然后滚动其他方式,只需移动光标即可。
注意:我无法在上面的代码中显示向上“”和向下“”箭头的代码,但相信我它就在那里。
【问题讨论】:
-
这两个小部件的行数是否相同?
-
是的。它们都有 99 行。
-
嗯,我找到了答案,但我必须等待 8 小时才能发布。在我所有的搜索中,我需要的信息只出现一次。没有很好的记录。
标签: python text tkinter sync arrow-keys