【发布时间】:2016-07-31 03:55:28
【问题描述】:
我将 Tkinter 与 python 一起用于一个简单的 UI,其中有一个文本小部件和一个按钮。按下按钮时,我希望使用 focus_set() 方法将光标焦点设置在文本小部件上。
我不明白为什么 focus_set() 在我的代码中不起作用。我认为这可能是因为我的文本小部件位于框架 (frame1) 内,而我无法在 startPaus() 方法中正确访问此小部件。有什么想法可以解决这个问题吗??
class TypingField(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.submit_tog = True
self.initUI()
def initUI(self):
self.parent.title("Text Field")
self.pack(fill = BOTH, expand=True)
frame1 = Frame(self, width = 50, height =25)
frame1.pack(fill = X, expand=True)
self.scroll = Scrollbar(frame1)
self.scroll.pack(side = "right", fill = Y)
self.text = Text(frame1)
self.text.pack(fill=Y)
self.scroll.config(command=self.text.yview)
self.text.config(yscrollcommand=self.scroll.set)
frame2 = Frame(self)
frame2.pack(fill=X, expand=True)
self.submit = Button(frame2,text="Start Test")
self.submit.bind("<Button-1>", self.startPause)
self.submit.pack(fill=X)
def startPause(self, event):
if self.submit_tog:
self.submit.configure(text = "Pause")
self.text.focus_set()
else:
self.submit.configure(text = "Start Test")
self.submit_tog = not self.submit_tog
【问题讨论】:
标签: python python-2.7 tkinter tkinter-canvas