This is my first question on StackOverflow. It might not be up to the standards but just a basic query. Can I check for specific letters in a Listbox in Tkinter as the title states?
My code:
task_index = tasks_list.curselection()
selected_task = tasks_list.get(task_index) + "(Done)"
for task in tasks_list.curselection():
tasks_list.delete(task)
tasks_list.insert(task_index, selected_task)
I want to check if (Done) is already present in the list item and if it is, print something like "error". Hope someone can help!
You can go through the selected tasks, check whether the task ends with '(Done)'. If not, mark the task done by adding '(Done)' to the task:
# assume mark_done() is executed when a button is clicked
# to mark selected tasks done
def mark_done():
DONE_MARKER = '(Done)'
for idx in tasks_list.curselection():
task = tasks_list.get(idx)
if not task.endswith(DONE_MARKER):
# mark the task done
tasks_list.delete(idx)
tasks_list.insert(idx, f'{task} {DONE_MARKER}')
else:
print(f'"{task[:-len(DONE_MARKER)-1]}" already done')