summaryrefslogtreecommitdiff
path: root/gui.py
diff options
context:
space:
mode:
Diffstat (limited to 'gui.py')
-rw-r--r--gui.py89
1 files changed, 50 insertions, 39 deletions
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 <https://www.gnu.org/licenses/>.
-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()
Copyright 2019--2024 Marius PETER