Во-первых, это довольно сложная для объяснения проблема, но я воспользуюсь ею.
Я создал массив с некоторыми 'items' ипоместили эти элементы из этого массива (используя цикл for, чтобы независимо от того, сколько элементов может быть в массиве, который он все еще работает) в список, где вы можете выбрать один из элементов, которые нужно удалить. Однако, поскольку я использовал цикл for, элементы в списке не имеют номера, который я могу связать с ними, и поэтому я не могу удалить один элемент, который хочу.
Ниже приведен код, которым я являюсьиспользуя в данный момент:
from tkinter import *
import tkinter.messagebox as box
global num
num = 1
inventorylist = ["Item1","Item2","Item3","Item4"]
def remove():
global i
del inventorylist[i]
situation_I()
def situation_IR():
global num
if num == 1:
windowi.destroy()
num = 2
global windowir
windowir = Tk()
windowir.title( "IR" )
listframe = Frame( windowir )
listbox = Listbox( listframe )
global i
for i in range(len(inventorylist)):
e = i+1
listbox.insert(e, inventorylist[i])
btn_ir_1 = Button( listframe, text = "Remove", command = remove )
btn_ir_1.pack(side = RIGHT, padx = 5)
listbox.pack(side = LEFT)
listframe.pack(padx = 30, pady = 30)
windowir.mainloop
def situation_I():
global num
if num == 2:
windowir.destroy()
num = 1
global windowi
windowi = Tk()
windowi.title( "I" )
Btn_i = Button( windowi, text = "Remove item", command = situation_IR )
Btn_i.grid( row = 61, column = 76, columnspan = 50 )
Label_i = Label( windowi, relief = "groove", width = 50 )
Label_i.grid( row = 1, column = 76, rowspan = 50, columnspan = 100, padx = ( 10, 10 ) )
all_lines = []
for i in range(0, len(inventorylist), 3):
line = ", ".join(inventorylist[i:i+3])
all_lines.append(line)
words = ",\n".join(all_lines)
Label_i.configure( text = words )
windowi.mainloop()
situation_I()
В данный момент он просто удаляет последний элемент в массиве, несмотря ни на что.