Jan-19-2021, 05:39 PM
Really, Really long script,
from tkinter import * main = Tk() main.title("1. Unit & Dimentions") #root.geometry("1600x800+0+0") result_txt = StringVar() rel_result_txt = StringVar() #Var Details units_dict = { "fundamentals" : "length, mass\ntime, current\ntemperature, amount of substance\nluminous intensity", "supplementary quantities" : "plane angle, solid angle\nradioactivity", "derived quantities" : "area, volume,\nvelocity, acceleration\nforce, density\nangle, strain\nrelative, angular velocity\nuniversal gravitational constant, coefficient of viscosity", "length" : ["meter", "m", "L", "fundamentals"], "mass" : ["kilogram" , "kg", "M", "fundamentals"], "time" : ["second", "s", "T", "fundamentals"], "current" : ["ampere", "A", "I", "fundamentals"], "temperature" : ["kelvin", "K", "θ", "fundamentals"], "amount of substance" : ["mole", "mol", "N", "fundamentals"], "luminous intensity" : ["candela", "cd", "none", "fundamentals"], "plane angle" : ["radian", "rad", "none", "supplementary quantities"], "solid angle" : ["steradian", "sr", "none", "supplementary quantities"], "radioactivity" : ["bequral", "Bq", "T⁻¹", "supplementary quantities"], "area" : ["square meter", "m²", "L²", "derived quantities"], "volume" : ["cubic meter" ,"m³", "L³", "derived quantities"], "velocity" : ["meter per second", "ms⁻¹","LT⁻¹", "derived quantities"], "acceleration" : ["meter per square second", "ms⁻²", "LT⁻²", "derived quantities"], "force" : ["kilogram meter per square second", "kgms⁻² = N", "MLT⁻²", "derived quantities"], "density" : ["kilogram meter per cubic second", "kgms⁻³", "ML⁻³", "derived quantities"], "angle" : ["radian", "rad", "none", "derived quantities"], "strain" : ["none", "none", "none", "derived quantities"], "relative" : ["none", "none", "none", "derived quantities"], "angular velocity" : ["radian per second", "rad s⁻¹", "T⁻¹", "derived quantities"], "universal gravitational constant" : ["newton square meter per square kilogram", "N m² kg⁻²", "M⁻¹L³T⁻²", "derived quantities"], "coefficient of viscosity" : ["newton second per square meter", "Nsm⁻²", "ML⁻¹T⁻¹", "derived quantities"], } #Text boxes search_box = Entry(main, borderwidth = 4, width = 34) #LblFrames results = LabelFrame(main, text = "Results") rel_results = LabelFrame(main, text = "Related Results") #Text name = Label(main, text = "1. Unit & Dimentions", font = ("arial", 45, "bold"), fg = "Steel Blue", bd = 10) mj = Label(main, text = "A product of MihiraJ.com", font = ("arial", 26, "bold"), fg = "#cc5c54", bd = 10) dev = Label(main, text = "Devloped by Oshadha Mihiranga", font = ("arial", 18, "bold"), fg = "Steel Blue", bd = 10) search = Label(main, text = "Search", font = ("arial", 10, "bold"), fg = "black", bd = 10) result_lbl = Label(results, textvariable = result_txt, justify = LEFT) rel_restlts_lbl = Label(rel_results, textvariable = rel_result_txt, justify = LEFT) #functions def related_results(cater): prnt = units_dict.get(cater) rel_result_txt.set(prnt) rel_results.pack(fill = X, padx = 10) rel_restlts_lbl.pack(padx = 6, pady = 6, side = LEFT) def search_start(): results.pack(fill = X, padx = 10) clear_results.pack(pady = 4) txt_2_search = search_box.get().lower() global unit unit = units_dict.get(txt_2_search) if unit[3] == "fundamentals" or "supplementary quantities" or "derived quantities": if unit: result_txt.set(f"Physical Quantity : {txt_2_search}\nUnit : {unit[0]}\nSymbol : {unit[1]}\nDimention : {unit[2]}\nCategory : {unit[3]}") related_results(unit[3]) else: result_txt.set(f"Err001 : Result not Found, Please type again.") search_box.delete(0, END) else: if unit: result_txt.set(f"{txt_2_search}\n{unit}") else: result_txt.set(f"Err001 : Result not Found, Please type again.") search_box.delete(0, END) search_box.delete(0, END) def clear_res(): clear_results.pack_forget() results.pack_forget() rel_results.pack_forget() result_txt.set("") #buttons search_button = Button(main, text = "Search", command = search_start) clear_results = Button(main, text = "Clear", command = clear_res) #pack name.pack() mj.pack() search.pack() search_box.pack() search_box.focus() search_button.pack() result_lbl.pack(padx = 6, pady = 6, side = LEFT) dev.pack(side = BOTTOM) main.mainloop()Error when I click search, when the text-box is clear, or -->(search_box.set("")
Error:Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1885, in __call__
return self.func(*args)
File "D:\3. My folder\Projects\Programing\Python\4. MihiraJ Projects\Unit & Dimentions\1. Unit And Dimentions.py", line 68, in search_start
if unit[3] == "fundamentals" or "supplementary quantities" or "derived quantities":
TypeError: 'NoneType' object is not subscriptable