try this..
I think you were closing the CDU before trying to read the value of UUT_wo, and not using the correct method to read it.
Code: Select all
#imports ===========================================================================================
from tkinter import *
from tkinter import ttk
import tkinter as tk
import tkinter.messagebox
from tkinter.messagebox import showinfo
from Test_1 import *
from Test_2 import *
from Test_3 import *
from Test_4 import *
from Test_5 import *
from Test_6 import *
from view_report import *
from save_USB import *
from print_report import *
from help_window import *
from about_window import *
from fail_database import *
from FAQ_window import *
from Exit_ATP import *
from ending_session import *
import os
# Create instance
CDU = tk.Tk()
def window(CDU):
CDU.title('ATA: 34-61-14, Liquid Crystal Display Control Display Unit')
CDU.wm_attributes('-type', 'splash')
CDU.resizable(False,False) # prevent the GUI from being resizable, the same for (0,0)
# CDU.overrideredirect(1) # will remove the top badge of window
f = open("report.rep",'a+')
def donothing():
print("ok, ok I won't")
def about():
# showinfo(title='About', message='Application developed in Python with Tkinter by AQS\nAny problem or suggestion, please contact (941)726-6632')
showinfo(title='About', message='Application developed in Python with Tkinter by AQS\nAny problem or suggestion, please contact (941) 726-6632')
def start_progressbar():
progress_bar.start()
def stop_progressbar():
progress_bar.stop()
def ending_session():
#CDU.destroy()
# final_report = str(UUT_wo())
# print("WO: %s\n" % (UUT_wo.get()))
# report_name = "%s.rep" % UUT_wo.get()
os.rename('report.rep','%s.rep' % (UUT_wo.get()))
CDU.destroy()
sys.exit()
def run_progressbar():
progress_bar["maximum"] = 100
for i in range [101]:
sleep(0.05)
progress_bar["value"] = i #increment progressbar
progress_bar.update() #have to call update() in loop
progress_bar["value"] = 0 # reset / clear progressbar
def retrieve_report():
WO_retrieve = Entry(CDU, width=30)
WO_retrieve. grid(row=12, column=4, sticky='w')
print("WO Retrieve: %s\n" % (WO_retrieve()))
print("===========================================================")
print("Closing session")
print("\n")
print(" ...Bye")
print("\n")
def test_procedure():
atp = tk.Tk()
atp.geometry('800x480+0+0')
atp.overrideredirect(1)
menubar = Menu(atp)
atp.config(menu=menubar)
menubar.config(font=('Arial',16,"bold"))
def exit_ATP():
# WO = str(UUT_wo)
#print (WO)
#print("Work Order: %s" % (UUT_wo.get()))
f = open('report.rep','a')
f.write("===========================================================\n")
f.write("Closing session\n")
d = datetime.now()
f.write("{:%H:%M:%S}\n".format(d))
f.write("\n")
f.write(" ...Bye\n")
f.close()
atp.destroy()
def complete_test():
print ("Complete Test!")
f = open("report.rep",'a')
f.write("Developing All Tests\n")
# create a pulldown menu, and add it to the menu bar
atpmenu = Menu(menubar, tearoff=0)
atpmenu.configure(font=('Arial',16,"bold"))
atpmenu.add_command(label="Complete test", command=complete_test)
stepsmenu = Menu(atpmenu, tearoff=0)
stepsmenu.configure(font=('Arial',16,"bold"))
stepsmenu.add_command(label="Test No1", command=Test_1)
stepsmenu.add_command(label="Test No2", command=Test_2)
stepsmenu.add_command(label="Test No3", command=Test_3)
stepsmenu.add_command(label="Test No4", command=Test_4)
stepsmenu.add_command(label="Test No5", command=Test_5)
stepsmenu.add_command(label="Test No6", command=Test_6)
atpmenu.add_cascade(label="Step by step", menu=stepsmenu)
atpmenu.add_separator()
atpmenu.add_command(label="Exit", command=exit_ATP)
menubar.add_cascade(label="Test Procedure", menu=atpmenu)
reportmenu = Menu(menubar, tearoff=0)
reportmenu.configure(font=('Arial',16,"bold"))
reportmenu.add_command(label="View (display)", command=view_report)
reportmenu.add_separator()
reportmenu.add_command(label="Save to USB", command=save_USB)
reportmenu.add_command(label="Print...", command=print_report)
menubar.add_cascade(label="Reports", menu=reportmenu)
helpmenu = Menu(menubar, tearoff=0)
helpmenu.configure(font=('Arial',16,"bold"))
helpmenu.add_command(label="Help...", command=help_window)
helpmenu.add_command(label="FAQ", command=FAQ_window)
helpmenu.add_command(label="Failures database", command=fail_database)
helpmenu.add_separator()
helpmenu.add_command(label="About...", command=about_window)
menubar.add_cascade(label="Help", menu=helpmenu)
# display the menu
atp.config(menu=menubar)
print("===========================================================")
print("Work Order: %s\nUUT_PN: %s\nUUT SN:%s\nTechnician:%s" % (UUT_wo.get(), UUT_pn.get(), UUT_sn.get(), WO_tech.get()))
if radVar.get() == 1: print ("Work Requested: Bench Check")
elif radVar.get() == 2: print ("Work Requested: Repair")
elif radVar.get() == 3: print ("Work Requested: Overhaul")
print("===========================================================")
print("Acceptance Test Procedure")
print("Liquid Crystal Display Control Display Unit")
print("174101 Model 2584")
print("ATA 34-61-14, ATLAS Test Specification 552353-10-01")
print("===========================================================")
from datetime import datetime
d = datetime.now()
print("{:%Y-%m-%d %H:%M:%S}".format(d))
f = open("report.rep",'a')
f.write("Acceptance Test Procedure\n")
f.write("Liquid Crystal Display Control Display Unit\n")
f.write("174101 Model 2584\n")
f.write("ATA 34-61-14, ATLAS Test Specification 552353-10-01\n")
f.write("Date:")
f.write("{:%m-%d-%Y %H:%M:%S}\n".format(d))
f.write("===========================================================\n")
f.write('WO:'+ UUT_wo.get())
f.write("\nUUT_PN: %s\nUUT SN:%s\nTechnician:%s" % (UUT_pn.get(), UUT_sn.get(), WO_tech.get()))
f.write("\n===========================================================\n")
f = open("report.rep",'a')
#==========================================================================================
#window(CDU)===========================================================================================
# Add a title, size and disabling resize
CDU.attributes('-type', 'dock')
CDU.geometry('800x480+0+0')
CDU.title('ATA: 34-61-14, Liquid Crystal Display Control Display Unit')
#CDU.overrideredirect(1) #it removes the top badge
#Label(CDU, text="ATA: 34-61-14, Liquid Crystal Display Control Display Unit").grid(row=0, column=3)
# Adding Labels and Entries widgets =======================================================================
Label(CDU, text="UUT PN:",font = ('Arial', 16,"bold"), fg = 'darkblue').grid(row=1, column=3, sticky='e')
Label(CDU, text="Work Order:",font = ('Arial', 16, "bold"), fg = 'darkblue').grid(row=2, column=3, sticky='e')
Label(CDU, text="UUT SN:",font = ('Arial', 16, "bold"), fg = 'darkblue').grid(row=3, column=3, sticky='e')
Label(CDU, text="Technician:",font = ('Arial', 16, "bold"), fg = 'darkblue').grid(row=5, column=3, sticky='e')
UUT_pn = tk.Entry(CDU, width=30)
UUT_wo = tk.Entry(CDU, width=30)
UUT_sn = tk.Entry(CDU, width=30)
WO_tech = tk.Entry(CDU, width=18)
WO_retrieve = tk.Entry(CDU, width=30)
UUT_pn.grid(row=1, column=4, sticky='e')
UUT_wo.grid(row=2, column=4, sticky='e')
UUT_sn.grid(row=3, column=4, sticky='e')
WO_tech.grid(row=5, column=4, sticky='w')
CDU.focus_force()
#WO = str(UUT_wo)
#f = open("{%WO}.rep",'w')
#f.write(WO)
# Radiobuttons ===========================================================================================
# Radiobuttons Callback
def radCall():
radSel=radVar.get()
if radSel == 1: CDU.configure()
elif radSel == 2: CDU.configure()
elif radSel == 3: CDU.configure()
# Create three Radiobuttons using one variable
radVar = IntVar()
Label(CDU, text="Work Requested:",font = ('Arial', 16, "bold"), fg = 'darkblue'). grid(row=7, column=3, sticky='w')
benchtest = Radiobutton(CDU, text="Bench Test", font = ('Arial', 16, "bold"),variable=radVar, value=1, command=radCall)
benchtest.grid(row=7, column=4, columnspan=2, sticky='w')
repair = Radiobutton(CDU, text="Repair", font = ('Arial', 16, "bold"), variable=radVar, value=2, command=radCall)
repair.grid(row=8, column=4, columnspan=2, sticky='w')
overhaul = Radiobutton(CDU, text="Overhaul", font = ('Arial', 16, "bold"), variable=radVar, value=3, command=radCall)
overhaul.grid(row=9, column=4, columnspan=4, sticky='w')
# Canvas =================================================================================================
canvas_width = 291
canvas_height =387
canvas = Canvas(CDU,
width=canvas_width,
height=canvas_height)
canvas.grid(row=1, column=0, rowspan=11, columnspan=2, sticky='n')
img = PhotoImage(file="174101_2.gif")
canvas.create_image(20,20, anchor=NW, image=img)
Label(CDU, text="").grid(row=12, column=18, sticky='e')
# Functions ===============================================================================================
Button(CDU, text=" Test Procedure ",font = ('Arial', 16, "bold"), command = test_procedure).grid(row=10, column=4, sticky='e', padx=2)
Button(CDU, text=" Retrieve Report ",font = ('Arial', 16, "bold"), command = retrieve_report).grid(row=12, column=1, sticky='e')
Button(CDU, text=" About...",font = ('Arial', 16, "bold"), command = about).grid(row=15, column=1, sticky='e', padx=2)
Button(CDU, text=" Close Session ",font = ('Arial', 16, "bold"), command = ending_session).grid(row=15, column=4, sticky='e', padx=2)
window(CDU)
#==========================================================================================
#Start GUI
CDU.mainloop( )