In: Computer Science
Python 3
Calendar does not showing up
Fix code:
# required library import tkinter as tk from tkcalendar import DateEntry import xlsxwriter # frame window = tk.Tk() window.title("daily logs") #window.resizable(0,0) # 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="Failed date").grid(row=3, 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) cal = DateEntry(window, width=12, year=2019, month=6, day=22, background='darkblue', foreground='white', borderwidth=2) cal.grid(row=3, column=1) # callback function def readValue(): excel_barcode = barcode.get() excel_product = product.get() excel_money = money.get() date = cal._date print(date) workbook = xlsxwriter.Workbook("dailylog.xlsx") worksheet = workbook.add_worksheet() worksheet.write("A1", "BARCODE") worksheet.write("B1", "MONEY") worksheet.write("C1", "PRODUCT") worksheet.write("D1", "date") worksheet.write("A2", excel_barcode) worksheet.write("B2", excel_money) worksheet.write("C2", excel_product) worksheet.write("D2", str(date)) workbook.close() # callback function 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=4, pady=20, padx=20) button = tk.Button(text="CLEAR", command=cleardate).grid(row=4, column=1, pady=20, padx=20) window.geometry("500x400") window.mainloop()
Follow the steps to install the missing modules xlsxwriter and tkcalendar:
These two modules are must be installed to fix the above python code
Create a python project using PyCharm IDE and save the above source code file, any_name.py
Go to File > Settings
Go to project interpreter
On the right of the window, there is a "+" mark. Click on the "+" mark as shown below.
Then, search for the xlswriter package as shown and install the package.
xls-writer package is installed as shown below
Now, install tkcalendar package using the above similar steps.
Now, xlswriter and tkcalendar packages are installed.
Run the python code:
# required library import tkinter as tk # xlsxwriter as alias name for xlsxwriter import xlsxwriter as xlsxwriter from tkcalendar import DateEntry # frame window = tk.Tk() window.title("daily logs") #window.resizable(0,0) # 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="Failed date").grid(row=3, 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) cal = DateEntry(window, width=12, year=2019, month=6, day=22, background='darkblue', foreground='white', borderwidth=2) cal.grid(row=3, column=1) # callback function def readValue(): excel_barcode = barcode.get() excel_product = product.get() excel_money = money.get() date = cal._date print(date) workbook = xlsxwriter.Workbook("dailylog.xlsx") worksheet = workbook.add_worksheet() worksheet.write("A1", "BARCODE") worksheet.write("B1", "MONEY") worksheet.write("C1", "PRODUCT") worksheet.write("D1", "date") worksheet.write("A2", excel_barcode) worksheet.write("B2", excel_money) worksheet.write("C2", excel_product) worksheet.write("D2", str(date)) workbook.close() # callback function 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=4, pady=20, padx=20) button = tk.Button(text="CLEAR", command=cleardate).grid(row=4, column=1, pady=20, padx=20) window.geometry("500x400") window.mainloop()
Sample Output:
Enter the below data , for date click on the date button then a month window will appear .
select any date .
Then close the window. The result is saved to excel file dailylog.xlsx