示例#1
0
 def on_wheel_spin_ctrl(self, event: wx.Event, inc=0.1):
     # スピンコントロール変更時
     if event.GetWheelRotation() > 0:
         event.GetEventObject().SetValue(event.GetEventObject().GetValue() +
                                         inc)
     else:
         event.GetEventObject().SetValue(event.GetEventObject().GetValue() -
                                         inc)
示例#2
0
    def _on_picker_delete(self, event: wx.Event = None):
        logging.info(f'{self.sources.keys()}')
        id_ = str(event.GetEventObject().GetId())

        button: wx.Button = event.GetEventObject()
        sizer: wx.Sizer = self.sources[id_]['box']
        logging.debug(f'{button.GetName()} pressed')

        child_count = range(len(sizer.GetChildren()))
        for i in reversed(child_count):
            sizer.Hide(i)
            sizer.Remove(i)

        del self.sources[id_]['box']
        self.sources.pop(id_)
示例#3
0
    def _on_picker_browse(self, event: wx.Event = None):
        i: int = event.GetEventObject().GetId()
        browse_button: wx.Button = event.GetEventObject()
        text_ctrl = self.sources[str(i)]['text_ctrl']
        old_path = text_ctrl.GetValue()

        logging.debug(f'{browse_button.GetName()} pressed')

        dir_dialog: wx.DirDialog = wx.DirDialog(
            None, "Choose source directory", "",
            wx.DD_DEFAULT_STYLE | wx.DD_DIR_MUST_EXIST)

        dir_dialog.ShowModal()
        directory = dir_dialog.GetPath() if dir_dialog.GetPath(
        ) is not '' else old_path
        text_ctrl.SetValue(directory)
    def _on_dvc_selection_changed(self, event: wx.Event):
        """
        This method is called, if the selection in the dvc has changed.

        Then the infos of the new selected entry is shown.
        """
        dvc = event.GetEventObject()
        item = dvc.GetSelection()
        if item.ID is not None:
            entry: EntryConstruct = dvc.Model.ItemToObject(item)
            self._entry_details_viewer.set_entry(entry)

            metadata = get_gui_metadata(entry.obj)

            if metadata is None:
                start = None
                end = None
            else:
                start = metadata.offset_start
                end = metadata.offset_end

            if self._on_entry_selected is not None:
                self._on_entry_selected(start, end)

        else:
            self._entry_details_viewer.clear()
示例#5
0
    def button_press(self, e: wx.Event):
        button_id = e.GetEventObject().GetId()

        if button_id == ID_UP:
            self.move_object(0)
        elif button_id == ID_RIGHT:
            self.move_object(1)
        elif button_id == ID_DOWN:
            self.move_object(2)
        elif button_id == ID_LEFT:
            self.move_object(3)
        elif button_id == ID_ALL:
            self.set_check_boxes(True)
        elif button_id == ID_NONE:
            self.set_check_boxes(False)
        else:
            if hasattr(e.GetEventObject(), "entity_id"):
                self.select_object(e.GetEventObject().entity_id)
示例#6
0
 def on_trigger_out(self, event: wx.Event):
     ident = event.GetId()
     obj = event.GetEventObject()
     assert isinstance(obj, wx.CheckBox)
     for ch, x in enumerate(self.channels_ui):
         if ident == x.trigger_out_check.GetId():
             assert isinstance(self.device, osc1lite.OSC1Lite)
             self.device.set_trigger_out(ch, x.trigger_out_check.GetValue())
             break
示例#7
0
    def on_text_update(self, event: wx.Event) -> None:
        """On EVT_FANCY_TEXT_UPDATED_EVENT, set dirty flag true."""
        ctrl = event.GetEventObject()
        self.set_value(ctrl.Name, ctrl.num_value)

        # update point
        if ctrl.Name in 'xyzpt':
            self.parent.core.update_selected_points(
                [self.x, self.y, self.z, self.p, self.t])
示例#8
0
 def on_wheel_spin_ctrl(self, event: wx.Event, inc=0.1):
     # スピンコントロール変更時
     if event.GetWheelRotation() > 0:
         event.GetEventObject().SetValue(event.GetEventObject().GetValue() +
                                         inc)
         if event.GetEventObject().GetValue() >= 0:
             event.GetEventObject().SetBackgroundColour("WHITE")
     else:
         event.GetEventObject().SetValue(event.GetEventObject().GetValue() -
                                         inc)
         if event.GetEventObject().GetValue() < 0:
             event.GetEventObject().SetBackgroundColour("TURQUOISE")
示例#9
0
    def launch_bci_main(self, event: wx.Event) -> None:
        """Launch BCI MAIN"""
        if self.check_input():
            self.event_started = True
            username = self.comboboxes[0].GetValue().replace(" ", "_")
            experiment_type = event.GetEventObject().GetId()
            mode = 'RSVP'
            cmd = 'python bci_main.py -m {} -t {} -u {}'.format(
                mode, experiment_type, username)

            subprocess.Popen(cmd, shell=True)
示例#10
0
 def mode_change(self, e: wx.Event):
     e_obj: wx.RadioBox = e.GetEventObject()
     if e_obj.GetId() == ID_CABINS_MODE:
         target = "cabins"
     elif e_obj.GetId() == ID_NACELLES_MODE:
         target = "nacelles"
     else:
         return
     command = f"{target} mode {e_obj.GetItemLabel(e_obj.GetSelection()).lower()}"
     print(command)
     resp = self.send_command(command)
示例#11
0
    def on_check_arm_process_avoidance(self, event: wx.Event):
        # ラジオボタンかチェックボックスイベントがTrueの場合、切り替え
        if isinstance(event.GetEventObject(), wx.StaticText):
            if self.arm_process_flg_avoidance.GetValue() == 0:
                self.arm_process_flg_avoidance.SetValue(1)
            else:
                self.arm_process_flg_avoidance.SetValue(0)

        # パス再生成
        self.set_output_vmd_path(event)

        event.Skip()
示例#12
0
    def launch_bci_main(self, event: wx.Event) -> None:
        """Launch BCI MAIN"""
        if self.check_input():
            username = self.input_text[0].GetValue().replace(" ", "_")
            experiment_type = self._cast_experiment_type(
                event.GetEventObject().GetLabel())
            mode = 'RSVP'
            cmd = 'python bci_main.py -m {} -t {} -u {}'.format(
                mode, experiment_type, username)

            subprocess.call(cmd, shell=True)
            self.event_started = True
示例#13
0
 def on_trigger_source(self, event: wx.Event):
     val = event.GetEventObject().GetSelection()
     self.trigger = val
     self.mf.device.set_trigger_source(self.ch, val)
     if val == 1:
         self.mf.device.set_trigger_mode(self.ch, 0)
         self.continuous_toggle.Disable()
         self.continuous_toggle.SetLabel('One-shot')
         self.continuous_toggle.SetValue(False)
     else:
         self.continuous_toggle.Enable()
     self.trigger_button.Enable(self._enabled and not val)
示例#14
0
    def on_button(self, event: wx.Event):
        event_obj = event.GetEventObject()

        if event_obj == self.btn_clear_1:
            self.set_defaults()
        elif event_obj == self.btn_clear_2:
            event.Skip()
        elif event_obj == self.btn_preview:
            event.Skip()
        elif event_obj == self.btn_save:
            event.Skip()
        else:
            event.Skip()
示例#15
0
 def on_type(self, event: wx.Event):
     obj = event.GetEventObject()
     assert isinstance(obj, wx.Choice)
     if obj.GetSelection() == 0:  # Square Wave
         self.Hide(self.p_custom)
         self.Show(self.p_square)
         self.Layout()
         self.detail = self.p_square
     else:
         self.Hide(self.p_square)
         self.Show(self.p_custom)
         self.Layout()
         self.detail = self.p_custom
示例#16
0
 def check(self, event: wx.Event):
     if event.GetEventObject().GetLabel() == self.correct:
         self.correct_questions += 1
     self.current_question += 1
     if self.current_question < len(self.questions):
         self.update_question()
         self.Update()
     else:
         self.m_resultText.SetLabelText(
             "Your result: {}/{}!".format(self.correct_questions,
                                          self.current_question))
         self.m_simplebook1.ChangeSelection(2)
     event.Skip()
示例#17
0
    def on_button(self, event: wx.Event):
        event_obj = event.GetEventObject()

        if event_obj == self.btn_reload:
            self.reload_ui()
        elif event_obj == self.info_panel.btn_clear_2:
            self.out_grid.clear()
        elif event_obj == self.info_panel.btn_preview:
            self.preview()
        elif event_obj == self.info_panel.btn_save:
            self.save()
        else:
            print(event_obj)
            event.Skip()
示例#18
0
文件: dframe.py 项目: JackLPK/MiniTCM
    def on_button(self, e: wx.Event):
        e_obj = e.GetEventObject()
        if e_obj == self.btn1:
            fdlg = wx.FileDialog(self,
                                 'Export to PDF',
                                 PDFS_DIR.as_posix(),
                                 style=wx.FD_SAVE,
                                 wildcard='PDF files (*.pdf)|*.pdf')
            if fdlg.ShowModal() == wx.ID_OK:
                fp = Path(fdlg.GetPath()).resolve()
                self.report(fp)
            else:
                return

        else:
            e.Skip()
示例#19
0
    def on_check_arm_process_alignment(self, event: wx.Event):
        # ラジオボタンかチェックボックスイベントがTrueの場合、切り替え
        if isinstance(event.GetEventObject(), wx.StaticText):
            if self.arm_process_flg_alignment.GetValue() == 0:
                self.arm_process_flg_alignment.SetValue(1)
            else:
                self.arm_process_flg_alignment.SetValue(0)
        else:
            if self.arm_alignment_finger_flg_ctrl.GetValue(
            ) == 1 or self.arm_alignment_floor_flg_ctrl.GetValue() == 1:
                self.arm_process_flg_alignment.SetValue(1)

        if self.arm_alignment_finger_flg_ctrl.GetValue() and len(
                self.frame.multi_panel_ctrl.file_set_list) > 0:
            self.frame.on_popup_finger_warning(event)

        # パス再生成
        self.set_output_vmd_path(event)

        event.Skip()
示例#20
0
    def on_save_log(self, event: wx.Event):
        obj = event.GetEventObject()
        assert isinstance(obj, wx.CheckBox)
        if obj.GetValue():
            oscgui_config['OSCGUI']['save_log_to_file'] = 'yes'
            with open('config.ini', 'w') as fp:
                oscgui_config.write(fp)
            if self.log_fh is None:
                self.log_fh = logging.FileHandler(
                    time.strftime('oscgui-%Y%m%d.log'), delay=True)
                self.log_fh.setLevel(logging.INFO)
                self.log_fh.setFormatter(self.formatter)
                logging.getLogger().addHandler(self.log_fh)

        else:
            oscgui_config['OSCGUI']['save_log_to_file'] = 'no'
            with open('config.ini', 'w') as fp:
                oscgui_config.write(fp)
            if self.log_fh:
                logging.getLogger().removeHandler(self.log_fh)
                self.log_fh.close()
                self.log_fh = None
示例#21
0
 def on_delete(self, event: wx.Event):
     ident = event.GetId()
     obj = event.GetEventObject()
     assert isinstance(obj, wx.Button)
     for idx, x in enumerate(self.waveform_panels):
         if ident == x.delete_button.GetId():
             ch = self.mf.is_wf_using(x.label)
             if ch != -1:
                 wx.MessageBox(
                     'Cannot delete waveform.\n'
                     'Waveform is being used by channel %d.' % ch, 'Error',
                     wx.ICON_ERROR | wx.OK | wx.CENTRE, self.mf)
                 return
             self.parent.Freeze()
             del self.waveform_panels[idx]
             self.box.Detach(x)
             x.GetStaticBox().DestroyChildren()
             x.Destroy()
             break
     self.mf.update_wf_list()
     self.parent.Layout()
     self.parent.Thaw()
示例#22
0
 def OnButtonClick(self, e: wx.Event):
     source = e.GetEventObject()
     if source == self.TablesButton:
         self.state = 1
         self.TablesButton.SetLabel('These are Tables')
         self.current_table = None
         self._update_tables()
     elif source == self.NewButton:
         if self.state == 1:
             new_table_name = wx.GetTextFromUser('Enter a new table name', 'Create a new table')
             if new_table_name == '':
                 return
             self.dict[new_table_name] = list()
             self._update_tables()
         elif self.state == 2:
             selected_table = self.current_table
             new_article_text = wx.GetTextFromUser('Enter a new article text', 'Create an article')
             if new_article_text == '':
                 return
             articles_list = self.dict[selected_table]
             articles_list.append(new_article_text)
             self.dict[selected_table] = articles_list
             self._update_articles(selected_table)
     elif source == self.DeleteButton:
         if self.state == 1:
             table_name = self.list_wgt.GetStringSelection()
             del self.dict[table_name]
             self._update_tables()
         elif self.state == 2:
             selected_table = self.current_table
             selected_text = self.list_wgt.GetStringSelection()
             articles_list = self.dict[selected_table]
             for x in range(len(articles_list)):
                 if articles_list[x] == selected_text:
                     articles_list.pop(x)
                     break
             self._update_articles(selected_table)
示例#23
0
 def on_toggle(self, event: wx.Event):
     obj = event.GetEventObject()
     val = obj.GetValue()
     obj.SetLabel('Continuous' if val else 'One-shot')
     self.mf.device.set_trigger_mode(self.ch, val)
     self.continuous = val
示例#24
0
 def on_text_enter(self, event: wx.Event):
     event_obj = event.GetEventObject()
     if event_obj == self.search_bar:
         med_id = self.in_grid.current_id
         self.out_grid.add(med_id)
    def on_change_choice(self, event: wx.Event, midx: int):
        text = event.GetEventObject().GetStringSelection()

        # 同じ選択肢を初期設定
        if len(self.org_choices[midx].GetValue()) == 0 or len(text) == 0:
            self.org_choices[midx].ChangeValue(text)
            cidx = self.org_choices[midx].FindString(text)
            if cidx >= 0:
                self.org_choices[midx].SetSelection(cidx)

        if text in self.panel.model_file_ctrl.data.bones:
            bone_data = self.panel.model_file_ctrl.data.bones[text]

            if bone_data.getTranslatable():
                # 移動ボーン
                if len(self.rep_mx_choices[midx].GetValue()) == 0:
                    mxtext = f'{text}MX'
                    cidx = self.rep_mx_choices[midx].FindString(mxtext)
                    if cidx >= 0:
                        self.rep_mx_choices[midx].ChangeValue(mxtext)
                        self.rep_mx_choices[midx].SetSelection(cidx)
                    else:
                        self.rep_mx_choices[midx].ChangeValue(text)
                        cidx = self.rep_mx_choices[midx].FindString(text)
                        if cidx >= 0:
                            self.rep_mx_choices[midx].SetSelection(cidx)

                if len(self.rep_my_choices[midx].GetValue()) == 0:
                    mytext = f'{text}MY'
                    cidx = self.rep_my_choices[midx].FindString(mytext)
                    if cidx >= 0:
                        self.rep_my_choices[midx].ChangeValue(mytext)
                        self.rep_my_choices[midx].SetSelection(cidx)
                    else:
                        self.rep_my_choices[midx].ChangeValue(text)
                        cidx = self.rep_my_choices[midx].FindString(text)
                        if cidx >= 0:
                            self.rep_my_choices[midx].SetSelection(cidx)

                if len(self.rep_mz_choices[midx].GetValue()) == 0:
                    mztext = f'{text}MZ'
                    cidx = self.rep_mz_choices[midx].FindString(mztext)
                    if cidx >= 0:
                        self.rep_mz_choices[midx].ChangeValue(mztext)
                        self.rep_mz_choices[midx].SetSelection(cidx)
                    else:
                        self.rep_mz_choices[midx].ChangeValue(text)
                        cidx = self.rep_mz_choices[midx].FindString(text)
                        if cidx >= 0:
                            self.rep_mz_choices[midx].SetSelection(cidx)

            if bone_data.getRotatable():
                # 回転ボーン
                if len(self.rep_rx_choices[midx].GetValue()) == 0:
                    rxtext = f'{text}RX'
                    cidx = self.rep_rx_choices[midx].FindString(rxtext)
                    if cidx >= 0:
                        self.rep_rx_choices[midx].ChangeValue(rxtext)
                        self.rep_rx_choices[midx].SetSelection(cidx)
                    else:
                        self.rep_rx_choices[midx].ChangeValue(text)
                        cidx = self.rep_rx_choices[midx].FindString(text)
                        if cidx >= 0:
                            self.rep_rx_choices[midx].SetSelection(cidx)

                if len(self.rep_ry_choices[midx].GetValue()) == 0:
                    rytext = f'{text}RY'
                    cidx = self.rep_ry_choices[midx].FindString(rytext)
                    if cidx >= 0:
                        self.rep_ry_choices[midx].ChangeValue(rytext)
                        self.rep_ry_choices[midx].SetSelection(cidx)
                    else:
                        self.rep_ry_choices[midx].ChangeValue(text)
                        cidx = self.rep_ry_choices[midx].FindString(text)
                        if cidx >= 0:
                            self.rep_ry_choices[midx].SetSelection(cidx)

                if len(self.rep_rz_choices[midx].GetValue()) == 0:
                    rztext = f'{text}RZ'
                    cidx = self.rep_rz_choices[midx].FindString(rztext)
                    if cidx >= 0:
                        self.rep_rz_choices[midx].ChangeValue(rztext)
                        self.rep_rz_choices[midx].SetSelection(cidx)
                    else:
                        self.rep_rz_choices[midx].ChangeValue(text)
                        cidx = self.rep_rz_choices[midx].FindString(text)
                        if cidx >= 0:
                            self.rep_rz_choices[midx].SetSelection(cidx)

        elif len(text) == 0:
            # 空にした場合は空に
            self.org_choices[midx].ChangeValue("")
            self.org_choices[midx].SetSelection(-1)
            self.rep_mx_choices[midx].ChangeValue("")
            self.rep_mx_choices[midx].SetSelection(-1)
            self.rep_my_choices[midx].ChangeValue("")
            self.rep_my_choices[midx].SetSelection(-1)
            self.rep_mz_choices[midx].ChangeValue("")
            self.rep_mz_choices[midx].SetSelection(-1)
            self.rep_rx_choices[midx].ChangeValue("")
            self.rep_rx_choices[midx].SetSelection(-1)
            self.rep_ry_choices[midx].ChangeValue("")
            self.rep_ry_choices[midx].SetSelection(-1)
            self.rep_rz_choices[midx].ChangeValue("")
            self.rep_rz_choices[midx].SetSelection(-1)

        # 最後である場合、行追加
        if midx == len(self.org_choices) - 1 and self.org_choices[midx].GetSelection() > 0 and \
                (len(self.rep_mx_choices[midx].GetStringSelection()) > 0 or len(self.rep_my_choices[midx].GetStringSelection()) > 0 \
                    or len(self.rep_mz_choices[midx].GetStringSelection()) > 0 or len(self.rep_rx_choices[midx].GetStringSelection()) > 0 \
                    or len(self.rep_ry_choices[midx].GetStringSelection()) > 0 or len(self.rep_rz_choices[midx].GetStringSelection()) > 0):
            self.add_line(midx + 1)
 def on_enter_choice(self, event: wx.Event, midx: int):
     idx = event.GetEventObject().FindString(
         event.GetEventObject().GetValue())
     if idx >= 0:
         event.GetEventObject().SetSelection(idx)
         self.on_change_choice(event, midx)
示例#27
0
 def state_change(self, e: wx.Event):
     e_obj: wx.CheckBox = e.GetEventObject()
     command = f"{e_obj.GetLabel().lower()} {'on' if e_obj.GetValue() else 'off'}"
     print(command)
     resp = self.send_command(command)