def __init__(self, root): log = logging.getLogger(f"c.{__name__}.init") log.info("Start init") self.root = root # setup grid for root self.root.grid_rowconfigure(0, weight=1) self.root.grid_columnconfigure(0, weight=1) self.root.grid_columnconfigure(1, weight=0) # create children widget self.plot_panel = PlotPanel(self.root, bg="SeaGreen1") self.side_panel = SidePanel(self.root, bg="dark orange") # grid children widget self.plot_panel.grid(row=0, column=0, sticky="nsew") self.side_panel.grid(row=0, column=1, sticky="nsew")
def __init__(self, parent, title): wx.Frame.__init__(self, parent, title=title, size=(1200, 600)) self.splash = Splash(os.path.normpath( os.path.join(MEDIA_PATH, "Jormungandr.jpg")), parent=self) # Icon _icon = wx.NullIcon _icon.CopyFromBitmap( wx.Bitmap(os.path.normpath(os.path.join(MEDIA_PATH, "icon.png")), wx.BITMAP_TYPE_ANY)) self.SetIcon(_icon) # Status Bar self.statusbar = self.CreateStatusBar() # Menu Bar self.frame_1_menubar = wx.MenuBar() # File menu wxglade_tmp_menu = wx.Menu() ID_FILE_OPEN = wxglade_tmp_menu.Append(wx.ID_ANY, "&Open\tCTRL+O", "Open a previous session", wx.ITEM_NORMAL).GetId() ID_FILE_SAVE = wxglade_tmp_menu.Append(wx.ID_ANY, "&Save\tCTRL+S", "Save this session", wx.ITEM_NORMAL).GetId() ID_FILE_SAVEAS = wxglade_tmp_menu.Append(wx.ID_ANY, "Save &As\tALT+SHIFT+S", "Save this session as...", wx.ITEM_NORMAL).GetId() ID_FILE_QUIT = wxglade_tmp_menu.Append(wx.ID_ANY, "&Quit\tCTRL+Q", "Quit this session", wx.ITEM_NORMAL).GetId() self.frame_1_menubar.Append(wxglade_tmp_menu, "&File") # Help menu wxglade_tmp_menu = wx.Menu() ID_HELP_ABOUT = wxglade_tmp_menu.Append(wx.ID_ANY, "&About", "Display about dialog", wx.ITEM_NORMAL).GetId() self.frame_1_menubar.Append(wxglade_tmp_menu, "&Help") self.SetMenuBar(self.frame_1_menubar) # Splitter Window self.sp = wx.SplitterWindow(self, style=wx.SUNKEN_BORDER) self.p2 = PlotPanel(self.sp, self.statusbar) self.p1 = PropertyGridPanel(self.sp, self.p2.updatePlot) self.sp.SplitVertically(self.p1, self.p2, 400) # Event Bindings self.Bind(wx.EVT_MENU, self.OnOpen, id=ID_FILE_OPEN) self.Bind(wx.EVT_MENU, self.OnSave, id=ID_FILE_SAVE) self.Bind(wx.EVT_MENU, self.OnSaveAs, id=ID_FILE_SAVEAS) self.Bind(wx.EVT_MENU, self.OnExit, id=ID_FILE_QUIT) self.Bind(wx.EVT_MENU, self.OnAbout, id=ID_HELP_ABOUT) # Open Menu Wildcard self.wildcard = "GUI Save File (*.map)|*.map" # Current Working File self.working_file = None # update the plot self.p2.plot(self.p1.pg.GetPropertyValues()) # Set Statusbar text self.statusbar.SetStatusText('Ready')
def __do_layout(self): #Sizers: main_sizer = wx.BoxSizer(wx.VERTICAL) grid_sizer_1 = wx.FlexGridSizer(2, 1, 0, 0) sizerTitleBar = wx.FlexGridSizer(1, 7, 0, 0) #Titlebar: iconTitleBar = wx.StaticBitmap(self.panelTitleBar, wx.ID_ANY, wx.Bitmap("Lx_Icons/Desktop_Icon22x22.png", wx.BITMAP_TYPE_ANY)) sizerTitleBar.Add(iconTitleBar, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.RIGHT, 1) title = wx.StaticText(self.panelTitleBar, wx.ID_ANY, "Visual Speech Training System v2.0 ") title.SetForegroundColour(wx.Colour(255, 255, 255)) title.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, 0, "")) sizerTitleBar.Add(title, 0, wx.ALIGN_CENTER_VERTICAL | wx.BOTTOM | wx.TOP, 10) sizerTitleBar.Add(self.btnManual, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.RIGHT, 4) sizerTitleBar.Add(self.btnColor, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.RIGHT, 4) sizerTitleBar.Add(self.btnMinimize, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.RIGHT, 4) sizerTitleBar.Add(self.btnMaximize, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.RIGHT, 4) sizerTitleBar.Add(self.btnExit, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.RIGHT, 4) sizerTitleBar.AddGrowableRow(0) sizerTitleBar.AddGrowableCol(1) self.panelTitleBar.SetSizer(sizerTitleBar) grid_sizer_1.Add(self.panelTitleBar, 1, wx.EXPAND, 0) grid_sizer_1.Add(self.panelBody, 1, wx.EXPAND, 0) grid_sizer_1.AddGrowableRow(1) grid_sizer_1.AddGrowableCol(0) main_sizer.Add(grid_sizer_1,0, wx.EXPAND, 0) #minimize """Start of frame_box that holds boxsizers which Initialise the left, right toolbars and left, right Panels""" frame_box = wx.BoxSizer(wx.VERTICAL) top_box = wx.BoxSizer(wx.HORIZONTAL) '''Start of left_toolbar_box to hold all the tool on left side of the App''' left_toolbar_box = wx.BoxSizer(wx.VERTICAL) self.leftToolbar = wx.ToolBar(self, style=wx.TB_VERTICAL | wx.EXPAND | wx.TB_FLAT | wx.TB_NODIVIDER) # Add a tool button for clearing the current signal for i in range(20): self.leftToolbar.AddStretchableSpace() # Add a tool button for acquiring a new signal img = wx.Image('Lx_Icons/Signal_Normal.png').Scale(100, 60, wx.IMAGE_QUALITY_HIGH) l_acquire_tool = self.leftToolbar.AddTool(2, 'Signal', wx.Bitmap(img), 'Acquire new signal') self.Bind(wx.EVT_TOOL, self.on_Switch_Left_Panel, l_acquire_tool) for i in range(3): self.leftToolbar.AddStretchableSpace() # Add a tool button for analyzing the current signal img = wx.Image('Lx_Icons/Analysis_Normal.png').Scale(100, 60, wx.IMAGE_QUALITY_HIGH) l_analyze_tool = self.leftToolbar.AddTool(3, 'Analyze', wx.Bitmap(img), 'Analyze current signal') self.Bind(wx.EVT_TOOL, self.on_Switch_Left_Analysis_Panel, l_analyze_tool) for i in range(3): self.leftToolbar.AddStretchableSpace() # Add a tool button for animating the current signal img = wx.Image('Lx_Icons/Animation_Disabled.png').Scale(100, 60, wx.IMAGE_QUALITY_HIGH) l_animate_tool = self.leftToolbar.AddTool(4, 'Animation', wx.Bitmap(img), 'Animate current signal') # self.on_left_animation(None, init=True) self.leftToolbar.EnableTool(4, enable=False) self.Bind(wx.EVT_TOOL, self.on_Switch_Left_Animation_Panel, l_animate_tool) self.leftToolbar.AddStretchableSpace() self.leftToolbar.Realize() left_toolbar_box.Add(self.leftToolbar, 1, wx.EXPAND, 1) self.editLeftMessage = wx.TextCtrl(self, wx.ID_ANY, u"Message", wx.DefaultPosition, wx.Size( 107,40 ), wx.TE_CENTRE|wx.TE_READONLY |wx.TE_RICH2) self.editLeftMessage.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, 0, "")) self.editLeftMessage.SetForegroundColour(wx.Colour(255, 255, 255)) self.editLeftMessage.SetBackgroundColour(wx.Colour(64,134,170,1)) left_toolbar_box.Add(self.editLeftMessage, 0) top_box.Add(left_toolbar_box, 0, wx.ALL | wx.EXPAND, 1) '''End of left_toolbar_box''' '''Start of left_signal_box to hold PlotPanel and SignalAcquisitionDialog Panel on Left Side''' left_signal_box = wx.BoxSizer(wx.VERTICAL) self.plot_panel[0] = PlotPanel(self, title=self.user_data[0].user_name) left_signal_box.Add(self.plot_panel[0], 1, wx.ALL | wx.EXPAND, 1) # Expanded self.signal_acqui[0] = SignalAcquisitionDialog(self, self.user_data[0]) self.signal_acqui[0].Hide() left_signal_box.Add(self.signal_acqui[0], 1, wx.ALL | wx.EXPAND, 1) self.analysis_panel[0] = Analysis_Panel(self, self.user_data[0]) self.analysis_panel[0].Hide() left_signal_box.Add(self.analysis_panel[0], 1, wx.ALL | wx.EXPAND, 1) self.analysis_lower_left[0] = Analysis_Lower_Left(self, self.user_data[0]) self.analysis_lower_left[0].Hide() left_signal_box.Add(self.analysis_lower_left[0], 1, wx.ALL | wx.EXPAND, 1) self.animation_panel[0] = AnimationLeftPanel(self, self.user_data[0]) self.animation_panel[0].Hide() left_signal_box.Add(self.animation_panel[0], 0, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 1) top_box.Add(left_signal_box, 1, wx.ALL | wx.EXPAND, 1) '''End of left_signal_box''' '''Start of right_signal_box to hold PlotPanel and SignalAcquisitionDialog Panel on Right Side''' right_signal_box = wx.BoxSizer(wx.VERTICAL) self.plot_panel[1] = PlotPanel(self, title=self.user_data[1].user_name) right_signal_box.Add(self.plot_panel[1], 1, wx.ALL | wx.EXPAND, 1) self.signal_acqui[1] = SignalAcquisitionDialog(self, self.user_data[1]) self.signal_acqui[1].Hide() right_signal_box.Add(self.signal_acqui[1], 1, wx.ALL | wx.EXPAND, 1) self.analysis_panel[1] = Analysis_Panel(self, self.user_data[1]) self.analysis_panel[1].Hide() right_signal_box.Add(self.analysis_panel[1], 1, wx.ALL | wx.EXPAND, 1) self.analysis_lower_left[1] = Analysis_Lower_Left(self, self.user_data[1]) self.analysis_lower_left[1].Hide() right_signal_box.Add(self.analysis_lower_left[1], 1, wx.ALL | wx.EXPAND, 1) self.animation_panel[1] = AnimationRightPanel(self, self.user_data[0]) self.animation_panel[1].Hide() right_signal_box.Add(self.animation_panel[1], 0, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 1) top_box.Add(right_signal_box, 1, wx.ALL | wx.EXPAND, 1) '''End of right_signal_box''' '''Start of right_toolbar_box to hold all the tool on right side of the App''' right_toolbar_box = wx.BoxSizer(wx.VERTICAL) self.rightToolbar = wx.ToolBar(self, style=wx.TB_VERTICAL | wx.EXPAND | wx.TB_FLAT | wx.TB_NODIVIDER) for i in range(20): self.rightToolbar.AddStretchableSpace() # Add a tool button for acquiring a new signal img = wx.Image('Lx_Icons/Signal_Normal.png').Scale(100, 60, wx.IMAGE_QUALITY_HIGH) self.r_acquire_tool = self.rightToolbar.AddTool(101, 'Signal', wx.Bitmap(img), 'Acquire new signal') # self.Bind(wx.EVT_TOOL, self.on_acquire_signal_right, self.r_acquire_tool) # self.on_right_signal(None, init=True) self.Bind(wx.EVT_TOOL, self.on_Switch_Right_Panel, self.r_acquire_tool) for i in range(3): self.rightToolbar.AddStretchableSpace() # self.rightToolbar.AddSeparator() # Add a tool button for analyzing the current signal img = wx.Image('Lx_Icons/Analysis_Normal.png').Scale(100, 60, wx.IMAGE_QUALITY_HIGH) self.r_analyze_tool = self.rightToolbar.AddTool(102, 'Analyze', wx.Bitmap(img), 'Analyze current signal') self.Bind(wx.EVT_TOOL, self.on_Switch_Right_Analysis_Panel, self.r_analyze_tool) # self.on_right_analysis(None, init=True) # self.Bind(wx.EVT_TOOL, self.on_right_analysis, self.r_analyze_tool) for i in range(3): self.rightToolbar.AddStretchableSpace() # self.rightToolbar.AddSeparator() # Add a tool button for animating the current signal img = wx.Image('Lx_Icons/Animation_Disabled.png').Scale(100, 60, wx.IMAGE_QUALITY_HIGH) r_animate_tool = self.rightToolbar.AddTool(103, 'Animation', wx.Bitmap(img), 'Animate current signal') self.Bind(wx.EVT_TOOL, self.onClear(), r_animate_tool) self.rightToolbar.EnableTool(103, enable=False) # self.on_right_animation(None, init=True) self.Bind(wx.EVT_TOOL, self.on_Switch_Right_Animation_Panel, r_animate_tool) self.rightToolbar.AddStretchableSpace() self.rightToolbar.Realize() # self.rightToolbar.SetBackgroundColour('#4086aa') # Setting Background Colour on rightToolbar self.leftToolbar.SetBackgroundColour((64,134,170,1)) # Setting Background Colour on leftToolbar self.rightToolbar.SetBackgroundColour((64,134,170,1)) right_toolbar_box.Add(self.rightToolbar, 1, wx.EXPAND, 1) self.editRightMessage = wx.TextCtrl(self, wx.ID_ANY, u"Message", wx.DefaultPosition, wx.Size(107, 40), wx.TE_CENTRE|wx.TE_READONLY |wx.TE_RICH2) self.editRightMessage.SetFont(wx.Font(12, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, 0, "")) self.editRightMessage.SetForegroundColour(wx.Colour(255, 255, 255)) self.editRightMessage.SetBackgroundColour(wx.Colour(64, 134, 170, 1)) right_toolbar_box.Add(self.editRightMessage, 0) top_box.Add(right_toolbar_box, 0, wx.ALL | wx.EXPAND, 1) '''End of right_toolbar_box''' frame_box.Add(top_box, 1, wx.ALL | wx.EXPAND, 1) """End of frame_box that holds all boxsizers""" main_sizer.Add(frame_box, 1, wx.EXPAND, 0) self.SetSizer(main_sizer) self.Layout()