ttk.Entry.select_range()适用于Button,但不适用于python / tkinter中的ttk.Button?

时间:2014-07-30 14:25:04

标签: python button tkinter

有人可以解释为什么entry.select_range()适用于Button,但不适用于ttk.Button?

from tkinter import *
from tkinter import ttk

root = Tk()

entry = ttk.Entry(root)
entry.pack()

#This works
button = Button(root, text="Select your text", command=lambda:
                    entry.select_range(0, END))

#but this doesn't
##button = ttk.Button(root, text="Select your text", command=lambda:
##                    entry.select_range(0, END))

button.pack()

root.mainloop()

1 个答案:

答案 0 :(得分:2)

Google Group的回答是,

  

但是,在Windows上(仅),选择才会显示   当条目得到关注时。

以及关于ttk button的此页面说明了

  

默认情况下,ttk.Button将包含在焦点遍历中... To   从焦点遍历中删除小部件,使用takefocus = False

所以你需要在ttk.Button添加takefocus选项。

button = ttk.Button(root, takefocus=False, text=...)