我需要在我正在开发的IDE中同时滚动“行号”文本小部件和“代码”文本小部件。我将如何实现呢?
[编辑]在Tcl中执行此操作确实很容易,因此我认为必须能够获得与以下Tcl过程等效的Tkinter:
proc rollon {boxes args} {
foreach box $boxes {
eval {$box yview} $args
}
}
经过几次失败的尝试,我想到了这个可行的方法:
#!/usr/bin/env python3
from tkinter import *
from tkinter import ttk
root = Tk()
def viewall(*args):
global tx, tx2
eval('tx.yview(*args)')
eval('tx2.yview(*args)')
tx = Text(root, background='white', width = '20', height = '8')
tx2 = Text(root, background='white', width = '20', height = '8')
rolly = ttk.Scrollbar(root, orient=VERTICAL, command=viewall)
tx['yscrollcommand'] = rolly.set
tx2['yscrollcommand'] = rolly.set
tx.grid(row=0, column=0, sticky=(N, W, E, S))
tx2.grid(row=0, column=1, sticky=(N, W, E, S))
rolly.grid(row=0, column=2, sticky=(N, W, E, S))
root.mainloop()
比我更了解Python的人可能会想出如何做到这一点,而不必分别列出每个文本小部件的“ yview”,但这应该可以帮助您。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句