Python 是否可以更改tkinter列表框';在执行过程中选择什么模式?
让我们创建一个简单的Python 是否可以更改tkinter列表框';在执行过程中选择什么模式?,python,tkinter,listbox,widget,Python,Tkinter,Listbox,Widget,让我们创建一个简单的tkinter表单,最初是在selectmode=EXTENDED中使用Listbox小部件定义的。我想编码一个按钮,它将向表单添加高级选项,从而强制用户选择列表中的单个项目。这转化为更改为selectmode=SINGLE 我的代码不起作用。也许我根本无法重新定义列表框,我应该以其他方式访问参数selectmode class DefineMultiSelectForm(Frame): def __init__(self, master, listtodisplay
tkinter
表单,最初是在selectmode=EXTENDED
中使用Listbox
小部件定义的。我想编码一个按钮,它将向表单添加高级选项,从而强制用户选择列表中的单个项目。这转化为更改为selectmode=SINGLE
我的代码不起作用。也许我根本无法重新定义列表框
,我应该以其他方式访问参数selectmode
class DefineMultiSelectForm(Frame):
def __init__(self, master, listtodisplay=[]):
Frame.__init__(self, master=master)
self.listtodisplay=listtodisplay
self.create_widgets()
self.pack(fill=BOTH, expand=1)
def create_widgets(self):
self.listbox = Listbox(self,selectmode=EXTENDED, width=50)
self.listbox.grid(row=0, column=0, columnspan=4, sticky=W+E+N+S)
self.advanced_butt = Button(self, text="Advanced Editing", command=self.advanced)
self.advanced_butt.grid (row=7, column=2, sticky=W+E)
self.simplifd_butt = Button(self, text="Simple Editing", command=self.simple)
self.simplifd_butt.grid (row=7, column=1, sticky=W+E)
def advanced(self):
self.listbox = Listbox(self,selectmode=SINGLE, width=50)
def simple(self):
self.listbox = Listbox(self,selectmode=EXTENDED, width=50)
非常感谢 我不确定选择模式的态度,但对于大多数tkinter属性,您可以这样更改:
self.listbox['selectmode'] = SINGLE
# or you can do it this way
self.listbox.config(selectmode = SINGLE)
您的方式不起作用的原因是您所说的,您正在重新定义变量。我不确定选择模式的态度,但对于大多数tkinter属性,您可以这样更改:
self.listbox['selectmode'] = SINGLE
# or you can do it this way
self.listbox.config(selectmode = SINGLE)
你的方法不起作用的原因是你所说的,你正在重新定义变量