Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否可以更改tkinter列表框';在执行过程中选择什么模式?_Python_Tkinter_Listbox_Widget - Fatal编程技术网

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)
你的方法不起作用的原因是你所说的,你正在重新定义变量