Кнопка нового элемента открывает диалоговое окно, в котором я могу ввести новый элемент и сохранить его в любом списке. Один элемент списка должен быть выбран в качестве цели для записи.
Я пытаюсь ввести в приведенный ниже скрипт функцию, которая проверяет, выбран ли какой-либо отдельный элемент в любом из списков, если нет выбора для сообщения об ошибке.
Я попытался сделать это с помощью кода функции checkSelection, но, похоже, он не работает.
Это приведенный ниже код, я попытался сохранить его наименьшим количеством возможных строк.
from tkinter import *
from tkinter import messagebox
def newItem():
root2 = Tk()
curs1 = lb1.curselection()
curs2 = lb2.curselection()
def checkSelection():
if [curs1, curs2] is False:
messagebox.showerror("error", "Select a List Box stooopid!")
checkSelection()
def saveclose():
a = entry_1.get()
if curs1 is not None:
try:
lb1.insert(curs1, a)
root2.destroy()
except:
pass
if curs2 is not None:
try:
lb2.insert(curs2, a)
root2.destroy()
except:
pass
entry_1 = Entry(root2)
entry_1.grid(row=1, column=0, columnspan=5, rowspan=1, padx=5, pady=2, sticky=EW)
saveButt = Button(root2, text="Ok", command=saveclose)
saveButt.grid(row=6, column=1, sticky=E, padx=2, pady=2)
root2.mainloop()
root = Tk()
newButt = Button(root, text="New Item", command=newItem)
newButt.pack(side=LEFT, padx=2, pady=2)
lb1 = Listbox(root, bg="green")
lb1items = ["ItemNumber1", "ItemNumber2", "ItemNumber3"]
for i in range(len(lb1items)):
try:
lb1.insert(i + 1, lb1items[i])
lb1.pack(side=BOTTOM)
except:
pass
lb2 = Listbox(root, bg="blue")
lb2items = ["lb2 ItemNumber1", "lb2 ItemNumber2", "lb2 ItemNumber3"]
for j in range(len(lb2items)):
try:
lb2.insert(j + 1, lb2items[j])
lb2.pack(side=BOTTOM)
except:
pass
root.mainloop()