【发布时间】:2017-11-18 10:57:01
【问题描述】:
我可以为一个小部件写widget.configure(takefocus=False) 来实现我想要的。但是有没有一种方法可以轻松地禁用对父小部件及其所有子小部件的关注,而不是遍历每个子小部件并逐个禁用?
这是一个例子:
try: # In order to be able to import tkinter for
import tkinter as tk # either in python 2 or in python 3
except ImportError:
import Tkinter as tk
class BasicOperations(tk.Frame):
def __init__(self, master):
tk.Frame.__init__(self, master)
operations = "+-*/"
self.buttons = list()
for op in operations:
self.buttons.append(tk.Button(self, text=op))
#configure the geometry
for i in range(len(self.buttons)):
self.buttons[i].grid()
if __name__ == '__main__':
root = tk.Tk()
basic_ops = BasicOperations(root)
basic_ops.pack()
root.mainloop()
我尝试在__init__ 中调用self.configure(takefocus=False),但它并没有禁用它下面的按钮的焦点。
【问题讨论】:
-
在设置
command和布局几何时为什么不用for button in self.buttons:? -
@DonalFellows 这就是我最初会做的,但想知道是否有更好的方法。