【发布时间】:2018-01-31 08:24:56
【问题描述】:
from tkinter import *
window_main = Tk()
def window_open():
def chgColor(event):
lst["bg"] = lst.get(lst.curselection())
window_public = Tk()
window_public.title("New Page")
lbl = Label(window_public, text = "Today is a good day and I'm a gooie!")
lbl.grid(padx = 20, pady = 10)
var = StringVar()
lst = Listbox(window_public, height = 5, width = 10, listvariable = var)
lst.grid(padx = 50, pady = 20)
list = ["red", "blue", "yellow", "pink", "green", "white", "black"]
var.set(tuple(list))
lst.bind("<<ListboxSelect>>", chgColor)
window_public.mainloop()
window_main.title("Main")
window_main_btn = Button(window_main, text = "To New Page", command = window_open)
window_main_btn.grid(padx = 50, pady = 20)
window_main.mainloop()
错误:
Traceback (most recent call last):
File "C:\ComputerSoftware\python3.6\lib\tkinter\__init__.py", line 1699, in __call__
return self.func(*args)
File "C:/Users/Shawn/PycharmProjects/gammaC@meL/gamma1.py", line 7, in chgColor
lst["bg"] = lst.get(lst.curselection())
File "C:\ComputerSoftware\python3.6\lib\tkinter\__init__.py", line 2792, in get
return self.tk.call(self._w, 'get', first)
_tkinter.TclError: bad listbox index "": must be active, anchor, end, @x,y, or a number
我是 python 的初学者,遇到了一个问题。当我点击按钮时,我会转到一个新页面。然后,当我单击列表框时,我会得到回溯。我无法理解回溯的含义,也无法修复它。
但是我发现当我删除关于 window_main 的代码时,它会运行。
【问题讨论】:
-
以上代码返回错误而不是您收到的错误。请修复您的代码,使其返回您遇到的确切错误。
-
错误完全以下都不是,是OP有
Tk()的多个实例,所以var = StringVar()不知道属于哪里,一个简单的var = StringVar(master=window_public)将修复错误。虽然不建议使用两次Tk(),但使用Toplevel()
标签: python python-3.x tkinter