Python 2.7 如何在禁用和重新启用小部件时删除条目文本
当条目小部件的状态为禁用和重新启用时,是否有任何方法可以删除它中的用户输入?用户输入保持原样,我希望在不添加按钮事件的情况下对其进行修改Python 2.7 如何在禁用和重新启用小部件时删除条目文本,python-2.7,tkinter,optionmenu,tkinter-entry,Python 2.7,Tkinter,Optionmenu,Tkinter Entry,当条目小部件的状态为禁用和重新启用时,是否有任何方法可以删除它中的用户输入?用户输入保持原样,我希望在不添加按钮事件的情况下对其进行修改 from Tkinter import * class Interface(): def __init__(self, window): frame = Frame(window) frame.pack() self.hopLabel = Label(frame, text="Number:",
from Tkinter import *
class Interface():
def __init__(self, window):
frame = Frame(window)
frame.pack()
self.hopLabel = Label(frame, text="Number:", anchor=E)
self.hopLabel.grid(row=0, column=0, sticky=EW)
options = range(0,6)
options.append("Other")
self.variable = StringVar(frame)
self.variable.set(options[0])
self.options = OptionMenu(frame, self.variable, *options, command=self.this)
self.options.grid(row=0, column=2, sticky=EW)
self.button = Button(frame,text = "Print Value",width=20,command = self.printit(self.variable.get()))
self.button.grid(row=1)
self.otherEntry = Entry(frame, state=DISABLED)
self.otherEntry.grid(row=0, column=1, sticky=EW)
def this(self, value):
if value == "Other":
self.otherEntry.config(state=NORMAL)
else:
self.otherEntry.config(state=DISABLED)
def printit(self,value):
print value
if __name__ == "__main__":
root = Tk()
app = Interface(root)
root.mainloop()
为了节省空间,我没有添加打印“Other”选项值的函数。我的问题是:当小部件的状态从禁用变为正常时,是否仍要删除输入框中的值而不必按下按钮?要在禁用状态时删除输入小部件中的文本,只需先将状态设置为正常,然后调用
删除方法:
def this(self, value):
if value == "Other":
self.otherEntry.config(state=NORMAL)
self.otherEntry.delete(0, "end")
...
谢谢我没有想到将.delete(0,“end”)添加到正常状态,我在禁用状态下尝试了它。它起作用了!