def __init__(self, parent, title): super(UIFrame, self).__init__(parent, title=title, size=(512, 384), style=wx.DEFAULT_FRAME_STYLE) panel = wx.Panel(parent=self, id=0, pos=wx.DefaultPosition, size=(510, 382)) # 定义一个峰值计控制器 self.netbugger_text_peak_ctrl = peakmeter.PeakMeterCtrl( parent=panel, id=-1, pos=wx.DefaultPosition, size=(250, 200), style=0, agwStyle=0x1) self.netbugger_text_peak_ctrl.SetMeterBands(numBands=5, ledBands=20) self.netbugger_text_peak_ctrl.ShowGrid(True) # 定义一个时钟控制显示频率 self.timer = wx.Timer(self) self.Bind(wx.EVT_TIMER, self.OnTimer) wx.CallLater(2000 / 2, self.Start) # 更新尺寸 self.SetAutoLayout(1) # 显示界面 self.Centre() self.Show()
def __init__(self, *args, **kwargs): self.mapwidget = kwargs.pop('map', None) self.timewidget = kwargs.pop('time', None) wx.Panel.__init__(self, *args, **kwargs) self.id = wx.NewId() self.key = 'speed' self.gpx = None sizer = wx.BoxSizer(wx.VERTICAL) self.SetSizer(sizer) self.l1 = wx.StaticText(self, wx.NewId(), "Value:") #self.l2=wx.StaticText(self,wx.NewId(),"Map height:") #self.l3=wx.StaticText(self,wx.NewId(),"Current path: empty") self.peakmeter = pm.PeakMeterCtrl(self, -1, style=wx.SIMPLE_BORDER, agwStyle=pm.PM_VERTICAL) self.peakmeter.SetMaxSize(wx.Size(20, 1200)) self.peakmeter.SetMeterBands(1, 20) self.peakmeter.SetBandsColour(wx.GREEN, wx.YELLOW, wx.RED) self.peakmeter.SetRangeValue(10, 20, 22) self.peakmeter.SetData([12], 0, 1) sizer.Add(self.l1, 0, wx.CENTER) #sizer.Add(self.l2,0,wx.CENTER) #sizer.Add(self.l3,0,wx.CENTER) sizer.Add(self.peakmeter, 0, wx.CENTER) self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftMouseDblClick) msgwrap.register(self.OnSigCurChanged, signal="CurChanged") msgwrap.register(self.OnSigSelChanged, signal="SelChanged") msgwrap.register(self.OnSigValChanged, signal="ValChanged")
def __init__(self, parent): wx.Frame.__init__(self, parent, -1, "Vox Audio Recorder", size=(500, 200)) panel = wx.Panel(self) # default rx trigger value self.trigger = THRESHOLD self.recording = 0 # Initialize Objects self.vertPeak = PM.PeakMeterCtrl(panel, -1, size=(450,15), pos=(25, 130), style=wx.SIMPLE_BORDER, agwStyle=PM.PM_HORIZONTAL) self.vertPeak.SetMeterBands(1, 100) self.slider = wx.Slider(panel, value = self.trigger, minValue = 1, maxValue = 100,pos=(25, 100),size=(450,20),style = wx.SL_HORIZONTAL) self.slider.Bind(wx.EVT_SLIDER, self.OnSliderScroll) closeBtn = wx.Button(panel, label="Close", pos=(200, 5), size=(80, 25)) closeBtn.Bind(wx.EVT_BUTTON, self.onClose) lbl = wx.StaticText(panel,-1,pos=(393,80)) lbl.SetLabel('Recording') thresh = wx.StaticText(panel,-1,pos=(30,80)) thresh.SetLabel('Trigger Level') font1 = wx.Font(20, wx.MODERN, wx.NORMAL, wx.NORMAL, False, u'Consolas') self.filedescriptor = wx.StaticText(panel, -1, "Current File", pos=(145, 50) ) self.filedescriptor.SetFont(font1) self.timer = wx.Timer(self) self.Bind(wx.EVT_TIMER, self.OnTimer) self.filetimer = wx.Timer(self) self.filetimer.Start(1000) wx.CallLater(500, self.Start)
def test_lib_agw_peakmeterCtor(self): peak = PM.PeakMeterCtrl(self.frame, -1, style=wx.SIMPLE_BORDER, agwStyle=PM.PM_VERTICAL) peak.SetMeterBands(10, 15) peak.SetRangeValue(1, 10, 20) peak.SetData(self.get_data(), 0, 15)
def test_lib_agw_peakmeterMethods(self): peak = PM.PeakMeterCtrl(self.frame, -1, style=wx.SIMPLE_BORDER, agwStyle=PM.PM_HORIZONTAL) peak.SetMeterBands(10, 15) peak.SetRangeValue(1, 10, 20) peak.SetData(self.get_data(), 0, 15) self.assertTrue(peak.GetFalloffEffect()) self.assertTrue(not peak.IsGridVisible()) self.assertTrue(peak.GetAGWWindowStyleFlag() & PM.PM_HORIZONTAL == 0) self.assertEqual(peak.GetRangeValue(), (1, 10, 20))
def create_objects(self): """Creates the GUI objects""" meter = pm.PeakMeterCtrl(self, wx.ID_ANY, style=wx.SIMPLE_BORDER, agwStyle=pm.PM_VERTICAL) #, size=(400, 100)) meter.SetMeterBands(32, 20) # Visualize from 1 to 32 Hz meter.SetRangeValue(3.0, 6.0, 9.0) meter.ShowGrid(True) meter.SetBandsColour(wx.Colour(255, 0, 0), wx.Colour(255, 153, 0), wx.Colour(255, 255, 0)) meter.SetData([0] * 32, offset=0, size=32) self.meter = meter sensors = [ core.variables.SENSOR_NAMES[i] for i in core.variables.SENSORS ] sensors.append("F3+F4") #print(sensors) #debug selector = wx.RadioBox(self, wx.ID_ANY, "Select Channel", wx.DefaultPosition, wx.DefaultSize, sensors, 8) self.selector = selector self.Bind(wx.EVT_RADIOBOX, self.on_select_channel, self.selector) self.start_btn = wx.Button(self, wx.ID_ANY, "Start", size=(100, 25)) self.stop_btn = wx.Button(self, wx.ID_ANY, "Stop", size=(100, 25)) self.Next_btn = wx.Button(self, wx.ID_ANY, "Next Round", size=(100, 25)) self.LoadControl_btn = wx.Button(self, wx.ID_ANY, "Control (unset)", size=(100, 25)) self.Bind(wx.EVT_BUTTON, self.on_start, self.start_btn) self.Bind(wx.EVT_BUTTON, self.on_stop, self.stop_btn) self.Bind(wx.EVT_BUTTON, self.on_Next, self.Next_btn) self.Bind(wx.EVT_BUTTON, self.on_LoadControl, self.LoadControl_btn)
def __init__(self, parent, title): self.queue_buffer = Queue.Queue() self.show_visualizer = False wx.Frame.__init__(self, parent, title=title) # Create the titles. self.titleCode = wx.StaticText(self, label="Program Code", style=wx.ALIGN_CENTER | wx.BORDER) self.titleCode.SetBackgroundColour(CustomColor.DARK_GRAY) self.titleCode.SetForegroundColour(CustomColor.WHITE) self.titleHistory = wx.StaticText(self, label="History", style=wx.ALIGN_CENTER | wx.BORDER) self.titleHistory.SetBackgroundColour(CustomColor.DARK_GRAY) self.titleHistory.SetForegroundColour(CustomColor.WHITE) # Title Sizer self.titleSizer = wx.BoxSizer(wx.HORIZONTAL) self.titleSizer.Add( self.titleCode, 1, wx.EXPAND ) # arg 1: control to include, arg 2: size weight factor, arg 3: wx.EXPAND # means control will be resized when necessary self.titleSizer.Add(self.titleHistory, 1, wx.EXPAND) # Create the body self.bodyCode = wx.TextCtrl( self, style=wx.TE_READONLY | wx.TE_MULTILINE ) # add text box widget , style= (wx.TE_MULTILINE) for with multiple lines text. self.bodyCode.AppendText("No code has been generated yet.") self.bodyCode.SetBackgroundColour(CustomColor.LIGHT_GRAY) self.SetFont(self.bodyCode, CodeByDictUI.FONT_SIZE_CODE, CodeByDictUI.FONT_FAMILY_CODE) self.bodyHistory = wx.TextCtrl(self, style=wx.TE_READONLY | wx.TE_MULTILINE | wx.TE_RICH) self.bodyHistory.AppendText("There is no history.") self.bodyHistory.SetBackgroundColour(CustomColor.LIGHT_GRAY) # Body Sizer self.bodySizer = wx.BoxSizer(wx.HORIZONTAL) self.bodySizer.Add(self.bodyCode, 1, wx.EXPAND) self.bodySizer.Add(self.bodyHistory, 1, wx.EXPAND) # Create the lines of feedback self.feedbackOne = wx.StaticText(self, label=" ", style=wx.ALIGN_CENTER | wx.BORDER) self.feedbackOne.SetBackgroundColour(CustomColor.PALE_GRAY) self.feedbackOne.SetForegroundColour(CustomColor.RED) self.SetFont(self.feedbackOne, CodeByDictUI.FONT_SIZE_FEEDBACK) self.feedbackTwo = wx.StaticText(self, label=" ", style=wx.ALIGN_CENTER | wx.BORDER) self.feedbackTwo.SetBackgroundColour(CustomColor.LIGHT_GRAY) self.SetFont(self.feedbackTwo, CodeByDictUI.FONT_SIZE_FEEDBACK) self.feedbackThree = wx.StaticText(self, label=" ", style=wx.ALIGN_CENTER | wx.BORDER) self.feedbackThree.SetBackgroundColour(CustomColor.LIGHT_GRAY) self.SetFont(self.feedbackThree, CodeByDictUI.FONT_SIZE_FEEDBACK) self.feedbackFour = wx.StaticText(self, label=" ", style=wx.ALIGN_CENTER | wx.BORDER) self.feedbackFour.SetBackgroundColour(CustomColor.DARK_GRAY) self.SetFont(self.feedbackFour, CodeByDictUI.FONT_SIZE_FEEDBACK) self.feedbackFive = wx.StaticText(self, label=" ", style=wx.ALIGN_CENTER | wx.BORDER) self.feedbackFive.SetBackgroundColour(CustomColor.LIGHT_GRAY) self.SetFont(self.feedbackFive, CodeByDictUI.FONT_SIZE_FEEDBACK) # Feedback Sizer self.feedbackSizer = wx.BoxSizer(wx.VERTICAL) self.midFeedbackSizer = wx.BoxSizer(wx.HORIZONTAL) self.midFeedbackSizer.Add(self.feedbackTwo, 1, wx.FIXED_MINSIZE) self.midFeedbackSizer.Add(self.feedbackThree, 1, wx.FIXED_MINSIZE) self.feedbackSizer.Add(self.feedbackOne, 1, wx.EXPAND) self.feedbackSizer.Add(self.midFeedbackSizer, 1, wx.EXPAND) self.feedbackSizer.Add(self.feedbackFour, 1, wx.EXPAND) self.feedbackSizer.Add(self.feedbackFive, 1, wx.EXPAND) # Create the buttons self.buttonUndo = wx.Button(self, -1, "Undo") self.buttonClear = wx.Button(self, -1, "Clear") self.buttonExport = wx.Button(self, -1, "Export") self.buttonCheatsheet = wx.Button(self, -1, "Cheatsheet") self.Bind(wx.EVT_BUTTON, self.OnUndo, self.buttonUndo) self.Bind(wx.EVT_BUTTON, self.OnClear, self.buttonClear) self.Bind(wx.EVT_BUTTON, self.OnExport, self.buttonExport) self.Bind(wx.EVT_BUTTON, self.OnCheatsheet, self.buttonCheatsheet) # Button Sizer self.buttonSizer = wx.BoxSizer(wx.HORIZONTAL) self.buttonSizer.AddSpacer(CodeByDictUI.SPACE_SIDE_OF_BUTTONS) self.buttonSizer.Add(self.buttonUndo, 1, wx.EXPAND) self.buttonSizer.AddSpacer(CodeByDictUI.SPACE_BETWEEN_BUTTONS) self.buttonSizer.Add(self.buttonClear, 1, wx.EXPAND) self.buttonSizer.AddSpacer(CodeByDictUI.SPACE_BETWEEN_BUTTONS) self.buttonSizer.Add(self.buttonExport, 1, wx.EXPAND) self.buttonSizer.AddSpacer(CodeByDictUI.SPACE_BETWEEN_BUTTONS) self.buttonSizer.Add(self.buttonCheatsheet, 1, wx.EXPAND) self.buttonSizer.AddSpacer(CodeByDictUI.SPACE_SIDE_OF_BUTTONS) # Recording Bar self.recordStatus = wx.StaticText(self, label=CodeByDictUI.STRING_ON_RECORD, style=wx.ALIGN_CENTER) self.recordStatus.SetBackgroundColour(CustomColor.LIGHT_GRAY) self.recordStatus.SetForegroundColour(CustomColor.GREEN) self.SetFont(self.recordStatus, CodeByDictUI.FONT_SIZE_FEEDBACK) # Recording Visualizer self.vertPeak = PM.PeakMeterCtrl(self, -1, style=wx.SIMPLE_BORDER, agwStyle=PM.PM_VERTICAL) self.vertPeak.SetMeterBands(CodeByDictUI.VISUALIZER_NUM_BAND, CodeByDictUI.VISUALIZER_LED_PER_BAND) self.vertPeak.SetRangeValue(800, 3500, 8000) self.timer = wx.Timer(self) self.Bind(wx.EVT_TIMER, self.OnTimer) self.ShowVisualizer(True) wx.CallLater(500, self.visualizer_start) # Recording Bar sizer self.recordSizer = wx.BoxSizer(wx.HORIZONTAL) self.recordSizer.Add(self.recordStatus, 1, wx.EXPAND) self.speakNow = wx.StaticText(self, label=" ", style=wx.ALIGN_CENTER | wx.BORDER) self.speakNow.SetBackgroundColour(CustomColor.LIGHT_GRAY) self.speakNow.SetForegroundColour(CustomColor.GREEN) self.SetFont(self.speakNow, CodeByDictUI.FONT_SIZE_SPEAK_NOW) self.volumeSizer = wx.BoxSizer(wx.VERTICAL) self.volumeSizer.Add(self.speakNow, 1, wx.EXPAND) self.volumeSizer.Add(self.vertPeak, 2, wx.EXPAND | wx.ALL) self.recordSizer.Add(self.volumeSizer, 2, wx.EXPAND | wx.ALL) # Status Bar self.CreateStatusBar() # A status bar in the bottom of the window # Setting up the menu filemenu = wx.Menu() menuAbout = filemenu.Append(wx.ID_ABOUT, "&About", " Information about this program") menuExit = filemenu.Append(wx.ID_EXIT, "E&xit", " Terminate the program") # Creating the menubar menuBar = wx.MenuBar() menuBar.Append(filemenu, "&File") # add "filemenu" to the MenuBar self.SetMenuBar(menuBar) # add MenuBar to the Frame Content. # Set events self.Bind(wx.EVT_MENU, self.OnAbout, menuAbout) # bind a menu item "about" to event "OnAbout" self.Bind(wx.EVT_MENU, self.OnExit, menuExit) # The main sizer self.sizer = wx.BoxSizer(wx.VERTICAL) self.sizer.SetMinSize(800, 300) # sets the default sizer size. self.sizer.Add(self.titleSizer, 0, wx.EXPAND) self.sizer.Add(self.bodySizer, 5, wx.EXPAND) self.sizer.Add(self.feedbackSizer, 0, wx.EXPAND) # 0 means will not resize. self.sizer.AddSpacer(CodeByDictUI.SPACE_VERTICAL_BUTTONS) self.sizer.Add(self.buttonSizer, 0, wx.EXPAND) self.sizer.AddSpacer(CodeByDictUI.SPACE_VERTICAL_BUTTONS) self.sizer.Add(self.recordSizer, 0, wx.EXPAND) # Layout sizers self.SetSizer(self.sizer) # tell frame to use which sizer. self.SetAutoLayout(True) self.sizer.Fit(self) self.Show() # run the recognition self.recognition = CodingByDictRecognition(ui=self) self.recognition.start() self.dirname = '' self.code_formatter = CodeFormatter()