1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
|
from Tkinter import *
from ttk import *
from PIL import Image, ImageTk
List_Param_Nom = ['File_Name', 'N_tir', 'Frequency', 'Cycle', 'Mode', 'SumGain', 'Filter', 'T_First', 'R_First', 'ED', 'LD', 'M_Velocity',
'FL_Gain', 'Amplitude', 'P_Width', 'S_Angle', 'Thick_W', 'Angle', 'Width_B', 'Width_R', 'Face_R', 'Radius_B', 'Radius_D', 'N_ActiveElements',
'P_elt_gap', 'P_elt_length', 'P_length', 'P_elt_width', 'W_angle', 'W_height', 'W_velocity', 'Roof_angle',
'P_distance', 'Scan_Offset', 'Index_Offset', 'N_seg', 'Depth_min', 'Depth_max']
List_Param_ref = ['C:/Users/cfaderne/Desktop/loi_retard/J_Bevel/Olympus_J_Bevel', 6, 1000, 1, 1, -1, 0, 1, 1, 1700, 0, 3246, 0, 180, 50, 0, 100, 5, 13.5, 0, 10, 10, 20, 60, 0.08, 0.92,
59.92, 10, 33.7, 27.843, 2337, 0, 0, -80000, 0, 3, -90, -40]
List_def = ["Filename (without extension)", "Number of shots per focusing segments", "Probe frequency (dedicated to EMAT)", "Cycle number (dedicated to EMAT)",
"Inspection mode -> 0 = T/R, 1 = Pulse-Echo", "Gain applied to signal (default value = -1)", "Frequency filter #0 = 0.5 - 20MHz / #1 = 0.5 - 5MHz / #2 = 2 - 10MHz / #3 = 5 - 15MHz",
"First emitting element", "First receiving element", "Delay due to electronic (1700 for FOCUS and Tomoscan) in ns", "Delay applied on delay laws (Offset ?) in ns",
"Material velocity in m/s", "Gain per channel in dB (0 - 80)", "Excitation amplitude per channel in V (50 - 200)", "Pulse width in ns (50 - 500)", "Skew angle in tenth of degree",
"Wall thickness in mm", "Bevel angle in degree", "Bevel Width in mm", "Root Width in mm", "Root Face in mm", "J radius in mm", "Center of the J radius in mm", "Amount of active element per channel", "Interelement gap in mm",
"Element length in mm", "Active zone length in mm", "Active zone width in mm", "Wedge angle in degree", "Wedge height in mm",
"Wedge material velocity in m/s", "Roof angle (in case of T/R, otherwise put 0) in degree", "Side to side distance (in case of T/R, otherwise put 0) en mm",
"Exit point abcissa in microns", "Exit point ordinate in microns", "Number of focusing segments", "Minimal focusing depth, negative value in mm",
"Maximal focusing depth, negative value in mm"]
dicimg2 = {}
class ScrolledFrame(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
yvscrollbar = Scrollbar(self, orient=VERTICAL)
yvscrollbar.pack(fill=Y, side=RIGHT, expand=FALSE)
xvscrollbar = Scrollbar(self, orient=HORIZONTAL)
xvscrollbar.pack(fill=X, side=BOTTOM, expand=FALSE)
canvas = Canvas(self, bd=0, highlightthickness=0, xscrollcommand=xvscrollbar.set, yscrollcommand=yvscrollbar.set)
canvas.pack(side=LEFT, fill=BOTH, expand=TRUE)
yvscrollbar.config(command=canvas.yview)
xvscrollbar.config(command=canvas.xview)
canvas.xview_moveto(0)
canvas.yview_moveto(0)
self.interior = interior = Frame(canvas)
interior_id = canvas.create_window(0, 0, window=interior, anchor=NW)
def _configure_interior(event):
size = (interior.winfo_reqwidth(), interior.winfo_reqheight())
canvas.config(scrollregion="0 0 %s %s" % size)
if interior.winfo_reqwidth() != canvas.winfo_width():
canvas.config(width=interior.winfo_reqwidth())
if interior.winfo_reqheight() != canvas.winfo_reqheight():
canvas.config(height=interior.winfo_reqheight())
interior.bind('<Configure>', _configure_interior)
def _configure_canvas(event):
if interior.winfo_reqwidth() != canvas.winfo_width():
canvas.itemconfigure(interior_id, width=canvas.winfo_width())
if interior.winfo_reqheight() != canvas.winfo_reqheight():
canvas.itemconfigure(interior_id, height=canvas.winfo_reqheight())
canvas.bind('<Configure>', _configure_canvas)
class SampleApp(Tk):
def __init__(self):
root = Tk.__init__(self)
self.frame = ScrolledFrame(root)
self.frame.pack()
self.frame.interior.entries = []
i = 0
for values in List_Param_Nom:
if values == 'File_Name':
label = Label(self.frame.interior, text="Delay law file parameters")
label.grid(row=i, columnspan=3)
i = i+1
elif values == 'Thick_W':
label = Label(self.frame.interior, text="Bevel geometry characteristics")
label.grid(row=i, columnspan=3)
i = i+1
elif values == 'N_ActiveElements':
label = Label(self.frame.interior, text="Probe characteristics")
label.grid(row=i, columnspan=3)
i = i+1
elif values == 'W_angle':
label = Label(self.frame.interior, text="Wedge characteristics")
label.grid(row=i, columnspan=3)
i = i+1
elif values == 'Scan_Offset':
label = Label(self.frame.interior, text="Inspection geometry characteristics")
label.grid(row=i, columnspan=3)
i = i+1
label = Label(self.frame.interior, text=values)
label.grid(row=i, column=0)
a = List_Param_Nom.index(values)
label = Label(self.frame.interior, text=List_def[a])
label.grid(row=i, column=2)
entry = Entry(self.frame.interior, width=60)
entry.grid(row=i, column=1)
valeurs_def = str(List_Param_ref[a])
entry.insert(0, valeurs_def)
self.frame.interior.entries.append(entry)
i = i+1
self.frame.interior.quit_button = Button(self.frame.interior, text='Quit', command=self.quit)
self.frame.interior.quit_button.grid(row=i, column=2)
app = SampleApp()
app.mainloop()
app.destroy() |
Partager