Button 当试图操作列表框的项目,但未选择任何项目时,是否停止该错误?

Button 当试图操作列表框的项目,但未选择任何项目时,是否停止该错误?,button,python-3.x,tkinter,listbox,Button,Python 3.x,Tkinter,Listbox,我是tkinter的初学者。我正在列一张名单。您可以删除、选择和编辑它,但如果我没有选择列表中的任何内容并单击这些按钮,它会显示: Exception in Tkinter callback Traceback (most recent call last): File "C:\Python34\lib\tkinter\__init__.py", line 1533, in __call__ return self.func(*args) File "C:\Users\user\Desktop\

我是tkinter的初学者。我正在列一张名单。您可以删除、选择和编辑它,但如果我没有选择列表中的任何内容并单击这些按钮,它会显示:

Exception in Tkinter callback Traceback (most recent call last): File
"C:\Python34\lib\tkinter\__init__.py", line 1533, in __call__ return
self.func(*args) File "C:\Users\user\Desktop\HOW_TOUGH - NEW\Change_user.py",
line 60, in Edit (idx, ) = d ValueError: need more than 0 values to unpack'''
我计划禁用按钮,如果用户没有点击任何东西,但我不够专业。这是我的代码(这是一个子窗口)


当未选择任何内容时,方法
curselection()
返回一个空元组。只需添加一个

if not d:
    return
如果要使按钮变灰,可以执行以下操作:

button["state"] = DISABLED
请注意,这在当前代码中不起作用,因为您执行了以下操作:

self.button = ttk.Button(...).pack()
问题在于调用
pack()
,它返回
None
,有效地将
self.button
绑定到
None
。只需先将button对象分配给变量,然后打包即可。此外,不建议从Tkinter导入
*
,因为您正在命名空间中删除约190个名称。只用

import tkinter as tk
import tkinter as tk