From 32b6a6e80d22a6d6e8449821d3117252de3e89ba Mon Sep 17 00:00:00 2001 From: Marius Peter Date: Mon, 15 Jul 2019 13:29:36 -0700 Subject: commence class-ification of gui --- gui.py | 89 +++++++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 50 insertions(+), 39 deletions(-) (limited to 'gui.py') diff --git a/gui.py b/gui.py index cd036b1..a1b8d8e 100644 --- a/gui.py +++ b/gui.py @@ -13,9 +13,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import creator -import evaluator -import generator +from tools import creator, evaluator, generator +# import creator +# import evaluator +# import generator import tkinter as tk import tkinter.ttk as ttk @@ -23,6 +24,51 @@ from matplotlib.backends.backend_tkagg import ( FigureCanvasTkAgg, NavigationToolbar2Tk) +class MainWindow(tk.Frame): + """Main editor window.""" + + def __init__(self, *args, **kwargs): + tk.Frame.__init__(self, *args, **kwargs) + root = tk.Tk() + root.wm_title('MAE 154B - Airfoil Design, Evaluation, Optimization') + + # self.button = tk.Button(self, text="Create new window", + # command=self.create_window) + # self.button.pack(side="top") + frame_1 = ttk.Frame(root) + l_naca, e_naca = new_field(frame_1, 'naca') + l_chord, e_chord = new_field(frame_1, 'chord') + l_semi_span, e_semi_span = new_field(frame_1, 'semi_span') + af = generator.default_airfoil() + # Graph window + frame_2 = ttk.Frame(root) + fig, ax = creator.plot_geom(af, False) + plot = FigureCanvasTkAgg(fig, frame_2) + # plot.draw() + toolbar = NavigationToolbar2Tk(plot, frame_2) + # toolbar.update() + + l_naca.grid(row=0, column=0) + e_naca.grid(row=0, column=1, padx=4) + # b_naca.grid(row=0, column=2) + l_chord.grid(row=1, column=0) + e_chord.grid(row=1, column=1, padx=4) + l_semi_span.grid(row=2, column=0, padx=4) + e_semi_span.grid(row=2, column=1, padx=4) + frame_1.pack(side=tk.LEFT) + # Graph window + plot.get_tk_widget().pack(expand=1, fill=tk.BOTH) + toolbar.pack() + frame_2.pack(side=tk.LEFT) + + def create_window(self): + self.counter += 1 + window = tk.Toplevel(self) + window.wm_title("Window #%s" % self.counter) + label = tk.Label(window, text="This is window #%s" % self.counter) + label.pack(side="top", fill="both", expand=True, padx=100, pady=100) + + def new_field(parent, name): """Add a new user input field.""" @@ -46,40 +92,5 @@ def set_semi_span(name): print(semi_span) -root = tk.Tk() -root.wm_title('MAE 154B - Airfoil Design, Evaluation, Optimization') -# root.geometry('1000x400') - -# Object definition -# User inputs -frame_1 = ttk.Frame(root) -l_naca, e_naca = new_field(frame_1, 'naca') -l_chord, e_chord = new_field(frame_1, 'chord') -l_semi_span, e_semi_span = new_field(frame_1, 'semi_span') -af = generator.default_airfoil() -# Graph window -frame_2 = ttk.Frame(root) -fig, ax = creator.plot_geom(af, False) -plot = FigureCanvasTkAgg(fig, frame_2) -# plot.draw() -toolbar = NavigationToolbar2Tk(plot, frame_2) -# toolbar.update() - -# Layout -# User input -l_naca.grid(row=0, column=0) -e_naca.grid(row=0, column=1, padx=4) -# b_naca.grid(row=0, column=2) -l_chord.grid(row=1, column=0) -e_chord.grid(row=1, column=1, padx=4) -l_semi_span.grid(row=2, column=0, padx=4) -e_semi_span.grid(row=2, column=1, padx=4) -frame_1.pack(side=tk.LEFT) -# Graph window -plot.get_tk_widget().pack(expand=1, fill=tk.BOTH) -toolbar.pack() -frame_2.pack(side=tk.LEFT) - # plot.get_tk_widget().pack() - -root.mainloop() +MainWindow().mainloop() -- cgit v1.2.3