In: Computer Science
Python 3
Fix the code so if the user does not select a value in the sold by field, it shows a warning message indicating "Choose one value"
import tkinter as tk from tkcalendar import DateEntry from openpyxl import load_workbook window = tk.Tk() window.title("daily logs") window.grid_columnconfigure(1,weight=1) window.grid_rowconfigure(1,weight=1) # labels tk.Label(window, text="Bar code").grid(row=0, sticky="W", pady=20, padx=20) tk.Label(window, text="Products failed").grid(row=1, sticky="W", pady=20, padx=20) tk.Label(window, text="Money Lost").grid(row=2, sticky="W", pady=20, padx=20) tk.Label(window, text="sold by").grid(row=3, sticky="W", pady=20, padx=20) tk.Label(window, text="Failed date").grid(row=4, sticky="W", pady=20, padx=20) # entries barcode = tk.Entry(window) product = tk.Entry(window) money = tk.Entry(window) # arraging barcode.grid(row=0, column=1) product.grid(row=1, column=1) money.grid(row=2, column=1) options = tk.StringVar(window) options.set("Choose one value") # default value soldData = tk.OptionMenu(window, options, "Peter", "John", "Mary", "Jonatan", "Steve") soldData.grid(row=3, column=1) cal = DateEntry(window, width=12, background='darkblue', foreground='white', borderwidth=2) cal.grid(row=4, column=1) def readValue(): excel_barcode = barcode.get() excel_product = product.get() excel_money = money.get() excel_sold = options.get() date = cal._date print(date) data = [excel_barcode, excel_product, excel_money, excel_sold, date] workbook = load_workbook("dailylog.xlsx") worksheet = workbook.worksheets[0] worksheet.append(data) workbook.save("dailylog.xlsx") cleardate() def cleardate(): barcode.delete(0, 'end') product.delete(0, 'end') money.delete(0, 'end') options.set("Choose one value") # default value # button to trigger actions button = tk.Button(text="SUBMIT", command=readValue).grid(row=5, pady=20, padx=20) button = tk.Button(text="CLEAR", command=cleardate).grid(row=5, column=1, pady=20, padx=20) window.geometry("500x400") window.mainloop()
import tkinter as tk from tkcalendar import DateEntry from openpyxl import load_workbook from tkinter import messagebox window = tk.Tk() window.title("daily logs") window.grid_columnconfigure(1,weight=1) window.grid_rowconfigure(1,weight=1) # labels tk.Label(window, text="Bar code").grid(row=0, sticky="W", pady=20, padx=80) tk.Label(window, text="Products failed").grid(row=1, sticky="W", pady=20, padx=80) tk.Label(window, text="Money Lost").grid(row=2, sticky="W", pady=20, padx=80) tk.Label(window, text="sold by").grid(row=3, sticky="W", pady=20, padx=80) tk.Label(window, text="Failed date").grid(row=4, sticky="W", pady=20, padx=80) # entries barcode = tk.Entry(window) product = tk.Entry(window) money = tk.Entry(window) # arraging barcode.grid(row=0, column=1, padx=(0, 30), sticky='ew') product.grid(row=1, column=1, padx=(0, 30), sticky='ew') money.grid(row=2, column=1, padx=(0, 30), sticky='ew') options = tk.StringVar(window) options.set("Choose one value") # default value soldData = tk.OptionMenu(window, options, "Peter", "John", "Mary", "Jonatan", "Steve") soldData.grid(row=3, column=1) cal = DateEntry(window, width=12, background='darkblue', foreground='white', borderwidth=2) cal.grid(row=4, column=1) def readValue(): excel_barcode = barcode.get() excel_product = product.get() excel_money = money.get() excel_sold = options.get() if excel_sold.strip() == 'Choose one value': messagebox.showinfo("Error", "Please select a value for sold by") return date = cal._date print(date) data = [excel_barcode, excel_product, excel_money, excel_sold, date] workbook = load_workbook("dailylog.xlsx") worksheet = workbook.worksheets[0] worksheet.append(data) workbook.save("dailylog.xlsx") cleardate() def cleardate(): barcode.delete(0, 'end') product.delete(0, 'end') money.delete(0, 'end') # button to trigger actions button = tk.Button(text="SUBMIT", command=readValue).grid(row=5, pady=20, padx=20) button = tk.Button(text="CLEAR", command=cleardate).grid(row=5, column=1, pady=20, padx=20) window.geometry("500x400") window.mainloop()
************************************************** Thanks for your question. We try our best to help you with detailed answers, But in any case, if you need any modification or have a query/issue with respect to above answer, Please ask that in the comment section. We will surely try to address your query ASAP and resolve the issue.
Please consider providing a thumbs up to this question if it helps you. by Doing that, You will help other students, who are facing similar issue.