TKINTER: Как удалить элемент из списка / добавить элемент в список - PullRequest
0 голосов
/ 03 января 2019

Я новичок в программировании, и для выполнения задания мне нужно добавить элементы в список и удалить элементы из списка.Я боролся и смотрел на примеры.

Кнопка удаления визуально удаляет список, но в сочетании с функциями трассировки при обратном щелчке по записи, которую возвращает элемент.Я думаю, что мой список настроен как кортеж, и я не уверен, как его настроить, чтобы элемент исчез.

кнопка добавления еще не настроена, так как я не знаю, как изменить список, если у кого-нибудь есть какая-либо полезная информация о том, как мне этого добиться?Заранее спасибо.

Код:

import tkinter
from tkinter import *

main = Tk()

var = StringVar

def delete_Listbox():
    listbox.delete(ACTIVE)

def print_Listbox():
    z=listbox.get(0, END)
    print (z)

def on_entry_click(event):
    if searchbox.get() == 'Search module code or name':
       searchbox.delete(0, "end") # delete all the text in the entry
       searchbox.insert(0, '') #Insert blank for user input

def courseIndex(*args):
  course_input = search_var.get()
  listbox.delete(0, END)
  for item in all_items:
    if course_input.lower() in item.lower():
      listbox.insert(END, item)

search_var = StringVar()
search_var.trace('w', courseIndex)

searchbox = Entry(main, textvariable=search_var)
searchbox.grid(row=1,column=0)

l1 = Label(main, text="Search")
l1.grid(row=0, column=0)

searchbox = Entry(main, textvariable=search_var, bd=1, width=26)
searchbox.insert(0, 'Search module code or name')
searchbox.bind('<FocusIn>', on_entry_click)

listbox = Listbox(main, font = ("Purisa", 10, "bold"), height=20, width=55)

for i in [
    'CLD4002: Introduction to Operating Systems Virtualisation',
    'CLD4003: Linux Essentials',
    'SEC4001: Introduction to Networking',
    'SEC4002: Routing Fundamentals',
    'SEC4003: Security Fundamentals',
    'SWE4001: Introduction to Software Development',
    'CLD5003: Server Application Configuration and Management',
    'CLD5005: Advanced Linux',
    'SEC5001: Computing Security',
    'SEC5002: Network Architecture',
    'SEC5003: Wide Area Networks',
    'SEC5004: Wireless and Mobile Networks',
    'SEC5005: Enterprise Infrastructure',
    'CLD6000: Contemporary Problems Analysis',
    'CDL6001: Undergraduate Research Project',
    'SEC6001: Network Management',
    'SEC6002: Ethical Hacking and Digital Forensics',
    'SEC6003: Operations Management',
    'SEC6004: Cloud and Network Security',
    'SWE6008: Advanced Database'
]:
  listbox.insert(END, i)
listbox.grid()
all_items = listbox.get(0, END)

b1 = Button(main, text = "Add", font = ("Purisa", 10, "bold"), command = delete_Listbox)
b1.grid(row = 4, column = 0)

b3 = Button(main, text="Print", font = ("Purisa", 10, "bold"), command=print_Listbox)
b3.grid(row=3, column=1, columnspan=1)

b3 = Button(main, text="Delete", font = ("Purisa", 10, "bold"), command=delete_Listbox)
b3.grid(row=5, column=0)


searchbox.grid(row=1,column=0)




main.mainloop()

1 Ответ

0 голосов
/ 03 января 2019

Проверьте строки, которые я закомментировал.Вы заново вставляете все элементы listbox с помощью функции trace через all_items = listbox.get(0, END) и for item in all_items: loop

import tkinter
from tkinter import *

main = Tk()

var = StringVar

def delete_Listbox():
    listbox.delete(ACTIVE)

def print_Listbox():
    z=listbox.get(0, END)
    print (z)

def on_entry_click(event):
    if searchbox.get() == 'Search module code or name':
       searchbox.delete(0, "end") # delete all the text in the entry
       searchbox.insert(0, '') #Insert blank for user input

def courseIndex(*args):
  course_input = search_var.get()
  listbox.delete(0, END)
  for item in all_items:
    if course_input.lower() in item.lower():
      listbox.insert(END, item)

search_var = StringVar()
#search_var.trace('w', courseIndex)

searchbox = Entry(main, textvariable=search_var)
searchbox.grid(row=1,column=0)

l1 = Label(main, text="Search")
l1.grid(row=0, column=0)

searchbox = Entry(main, textvariable=search_var, bd=1, width=26)
searchbox.insert(0, 'Search module code or name')
searchbox.bind('<FocusIn>', on_entry_click)

listbox = Listbox(main, font = ("Purisa", 10, "bold"), height=20, width=55)

for i in [
    'CLD4002: Introduction to Operating Systems Virtualisation',
    'CLD4003: Linux Essentials',
    'SEC4001: Introduction to Networking',
    'SEC4002: Routing Fundamentals',
    'SEC4003: Security Fundamentals',
    'SWE4001: Introduction to Software Development',
    'CLD5003: Server Application Configuration and Management',
    'CLD5005: Advanced Linux',
    'SEC5001: Computing Security',
    'SEC5002: Network Architecture',
    'SEC5003: Wide Area Networks',
    'SEC5004: Wireless and Mobile Networks',
    'SEC5005: Enterprise Infrastructure',
    'CLD6000: Contemporary Problems Analysis',
    'CDL6001: Undergraduate Research Project',
    'SEC6001: Network Management',
    'SEC6002: Ethical Hacking and Digital Forensics',
    'SEC6003: Operations Management',
    'SEC6004: Cloud and Network Security',
    'SWE6008: Advanced Database'
]:
  listbox.insert(END, i)
listbox.grid()
#all_items = listbox.get(0, END)

b1 = Button(main, text = "Add", font = ("Purisa", 10, "bold"), command = delete_Listbox)
b1.grid(row = 4, column = 0)

b3 = Button(main, text="Print", font = ("Purisa", 10, "bold"), command=print_Listbox)
b3.grid(row=3, column=1, columnspan=1)

b3 = Button(main, text="Delete", font = ("Purisa", 10, "bold"), command=delete_Listbox)
b3.grid(row=5, column=0)


searchbox.grid(row=1,column=0)




main.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...