コード例 #1
0
 def generate_tab(self):
     self._username = user_services.get_current_user().username
     with simple.tab(name=self.tab_name, parent=self.tab_parent):
         if self.tab_name == "Workout":
             self.generate_workout_tab()
         elif self.tab_name == "Records":
             self.generate_records_table()
             self.generate_charts()
コード例 #2
0
ファイル: winsnap.py プロジェクト: pbvarga1/winsnap
    def init_ui(self):
        """Initialize the container's UI"""
        # the monitor profile is in a tab
        with dpg_simple.tab(self._tab_id, parent=self.parent, no_tooltip=True):
            # Create 2 groups and put them on the same line
            with dpg_simple.group(self._left_panel_id, parent=self._tab_id):
                # The grid input
                dpg_core.add_input_int2(
                    self._input_id,
                    parent=self._left_panel_id,
                    callback=self.input_callback,
                    default_value=[1, 1],
                )
                # snap button
                dpg_core.add_button(self._snap_id,
                                    parent=self._left_panel_id,
                                    callback=self.snap)
                # Customize grid with the plot
                dpg_core.add_plot(
                    self._plot_id,
                    parent=self._left_panel_id,
                    height=-1,
                    xaxis_lock_min=True,
                    xaxis_lock_max=True,
                    y2axis_lock_min=True,
                    y2axis_lock_max=True,
                    yaxis_no_tick_marks=True,
                    yaxis_no_tick_labels=True,
                    xaxis_no_tick_marks=True,
                    xaxis_no_tick_labels=True,
                    xaxis_no_gridlines=True,
                    yaxis_no_gridlines=True,
                )
                # Ensure the plot's limits are the work area
                dpg_core.set_plot_xlimits(self._plot_id,
                                          xmin=self.monitor.work.left,
                                          xmax=self.monitor.work.right)
                dpg_core.set_plot_ylimits(self._plot_id,
                                          ymin=self.monitor.work.top,
                                          ymax=self.monitor.work.bottom)

            # Put the application table on the right
            dpg_core.add_same_line(parent=self._tab_id)
            with dpg_simple.group(self._right_panel_id, parent=self._tab_id):
                self._app_table = AppTable(parent=self._right_panel_id)
コード例 #3
0
ファイル: winsnap.py プロジェクト: pbvarga1/winsnap
    def add_tab(self, *args, **kwargs):
        """Add a profile tab"""
        dpg_core.log_debug("Adding profile tab...")
        label = f"{self._tab_number}##MainWindow-tab{self._tab_number}"
        with dpg_simple.tab(label,
                            parent="##MainWindow-tabbar",
                            closable=False,
                            no_tooltip=True):
            profile = Profile(label, self._monitors)
            self._profiles[label] = profile
        self._tab_number += 1

        # If we previously only had one tab then we need to make the first tab closable
        if len(self._profiles) == 2:
            label = list(self._profiles)[0]  # get the label of the first tab
            dpg_core.configure_item(label, closable=dpg_core.get_value(label))

        dpg_core.log_info(f"Profile {label} successfully added")
        return profile
コード例 #4
0
ファイル: tab.py プロジェクト: jarisokka/ot-harjoitustyo-1
 def generate(self):
     with simple.tab(name=self.tab_name, parent=self.parent):
         if self.tab_name == "Exercises":
             core.add_spacing(count=10)
             core.add_group(name="workout_execution_group")
             core.add_group(name="workout_composition_group")
             core.add_combo(
                 "Equipment##widget",
                 items=get_criterias_by_name("Equipment"),
                 parent="workout_composition_group",
             )
             core.add_spacing(count=4, parent="workout_composition_group")
             core.add_combo(
                 "Exercise Type##widget",
                 items=get_criterias_by_name("Exercise Type"),
                 parent="workout_composition_group",
             )
             core.add_spacing(count=4, parent="workout_composition_group")
             core.add_combo(
                 "Muscle Group##widget",
                 items=get_criterias_by_name("Major Muscle"),
                 parent="workout_composition_group",
             )
             core.add_spacing(count=4, parent="workout_composition_group")
             core.add_button(
                 "Compose Workout##widget",
                 parent="workout_composition_group",
                 callback=self.compose_workout,
             )
             core.add_text(
                 "Fill all the inputs, please.",
                 color=[255, 0, 0],
                 parent="workout_composition_group",
             )
             simple.hide_item("Fill all the inputs, please.")
         else:
             core.add_text(f"text 2")
コード例 #5
0
def open_help_window(sender, data):
    """
    Opens new window with help annotations
    """
    with simple.window('Help##window',
                       width=1000,
                       height=600,
                       on_close=delete_items(['Help##window'])):
        with simple.tab_bar("Help tabs"):
            with simple.tab('Architectures##help'):
                core.add_drawing('armonk', width=72, height=75)
                core.draw_image('armonk', './backends/armonk.png', [72, 72])
                core.add_text('ibmq_armonk: 1 qubit.')
                core.add_spacing(name='##space10', count=10)

                core.add_drawing('athens', width=518, height=75)
                core.draw_image('athens', './backends/athens-santiago.png',
                                [0, 72])
                core.add_text('ibmq_athens and ibmq_santiago: 5 qubits.')
                core.add_spacing(name='##space12', count=10)

                core.add_drawing('yorktown', width=373, height=400)
                core.draw_image('yorktown', './backends/ibmqx2.png', [0, 400])
                core.add_text('ibmqx2: 5 qubits.')
                core.add_spacing(name='##space13', count=10)

                core.add_drawing('melb', width=1000, height=196)
                core.draw_image('melb', './backends/melbourne.png', [0, 196])
                core.add_text('ibmq_16_melbourne: 15 qubits.')
                core.add_spacing(name='##space14', count=10)

            with simple.tab('Instructions##help'):
                core.add_text(
                    '1. In the Selector block a user can select optimization parameters:'
                )
                core.add_spacing(name='##text_spacing1', count=5)

                core.add_text(
                    '* the level of optimization provided by IBM Q (ranging from 0 to 3)'
                )
                core.add_text(
                    '* IBM Original layout or advanced SWAP placement')
                core.add_text('* location of placement')
                core.add_text('* number of iterations.')
                core.add_spacing(name='##text_spacing2', count=5)

                core.add_text(
                    '2. In the Hardware & Circuit block choose between testing the circuit on a quantum computer (IBM Q) and simulator (Qasm).',
                    wrap=900)
                core.add_spacing(name='##text_spacing3', count=5)
                core.add_text(
                    '3. Choose quantum coupling (quantum computer architecture) - IBM Q or Qasm.',
                    wrap=900)
                core.add_spacing(name='##text_spacing4', count=5)
                core.add_text(
                    '4. Upload an input file. After selection, the file name will be displayed in the Hardware & Circuit block and the circuit representation will be displayed in the Circuit before the reduction block.',
                    wrap=900)
                core.add_spacing(name='##text_spacing5', count=5)
                core.add_text(
                    '5. When pressing on the Process button the tool will find the optimal mapping of the circuit onto the quantum computer architecture.',
                    wrap=900)
                core.add_spacing(name='##text_spacing6', count=5)
                core.add_text(
                    '6. The resulting mapping will appear in the Circuit after the reduction block.',
                    wrap=900)
コード例 #6
0
ファイル: trackers.py プロジェクト: tylernap/pytasker
 def render(self, page, page_data=None):
     self.page = page
     with simple.tab(
         name=f"tab{self.id}", closable=True, parent=self.parent, label=self.tab_name
     ):
         page.render(page_data)
コード例 #7
0
    def create_convert_window(self, payload: Payload):
        """
        Creates a convert window. This window represents a file. From this window you can convert the file to text.
        Then translate the text. And finally you can save it to a file.
        The window has 3 tabs. The first tab contains all the controls for:
        - converting the file
        - translated the converted file
        - save the text to disk
        - save ethe translation to disk

        :param payload: Payload object
        :return:
        """
        unique_id = self._get_uid()
        window_title = f'{payload.file_name}_{str(unique_id)}'

        convert_window = simple.window(window_title,
                                       width=450,
                                       height=600,
                                       y_pos=0 + (20 * unique_id),
                                       x_pos=200 + (20 * unique_id))
        with convert_window:
            # widget ids
            top_spacer = f'top_{unique_id}'
            bottom_spacer = f'bottom_{unique_id}'

            convert_button = f'convert_{unique_id}'
            translate_button = f'translate_{unique_id}'
            save_text_button = f'save_text_{unique_id}'
            save_translation_button = f'save_translation_{unique_id}'

            text_spacer = f'text_spacer_{unique_id}'
            translated_text_spacer = f'translated_text_spacer_{unique_id}'
            tab_bar_name = f'tab_bar_{unique_id}'
            tab_names = [
                f'controls_{unique_id}', f'text_{unique_id}',
                f'translated_{unique_id}'
            ]
            tabs = []
            text_value_name = f'text_{unique_id}'  # the name of the value holding the text gathered from OCR
            source_lang_combo_name = f'text_language{unique_id}'
            destination_lang_combo_name = f'destination_language{unique_id}'
            translated_text_value_name = f'translated_text_{unique_id}'  # the name of the value holding the translation
            core.add_value(text_value_name,
                           '')  # the value that stores the OCR text
            core.add_value(translated_text_value_name,
                           '')  # the value that stores the translated text

            # Creating widgets
            tab_bar = simple.tab_bar(tab_bar_name)
            with tab_bar:
                tabs += [simple.tab(tab_names[0], label="Controls")]
                tabs += [simple.tab(tab_names[1], label="Text")]
                tabs += [simple.tab(tab_names[2], label="Translation")]

                # creating the control tab
                with tabs[0]:
                    core.add_text(payload.file_name)
                    core.add_spacing(count=1, name=top_spacer)
                    core.add_spacing(count=1, name=bottom_spacer)

                    language_list = list(lang.keys())
                    core.add_combo(source_lang_combo_name,
                                   label='Source Language',
                                   items=language_list,
                                   default_value=core.get_value(
                                       'default_source_language'))
                    core.add_combo(destination_lang_combo_name,
                                   label='Destination Language',
                                   items=language_list,
                                   default_value=core.get_value(
                                       'default_destination_language'))
                    # Creating payload for the convert button
                    convert_payload = Payload()
                    convert_payload.value_name = text_value_name
                    convert_payload.file_path = payload.file_path
                    convert_payload.parent = window_title
                    convert_payload.disable = [convert_button]
                    convert_payload.enable = [
                        translate_button, save_text_button
                    ]
                    core.add_button(convert_button,
                                    label='Convert to Text',
                                    callback=self.convert_file,
                                    callback_data=convert_payload)

                    translate_payload = Payload()
                    translate_payload.value_name = text_value_name
                    translate_payload.destination_value_name = translated_text_value_name
                    translate_payload.source_language_value = source_lang_combo_name
                    translate_payload.destination_language_value = destination_lang_combo_name
                    translate_payload.disable = [translate_button]
                    translate_payload.enable = [
                        translate_button, save_translation_button
                    ]

                    core.add_button(translate_button,
                                    label='Translate Text',
                                    enabled=False,
                                    callback=self.translate_text,
                                    callback_data=translate_payload)

                    save_text_payload = Payload()
                    save_text_payload.value_name = text_value_name
                    core.add_button(save_text_button,
                                    label='Save Text',
                                    callback=self.save_prompt,
                                    callback_data=save_text_payload,
                                    enabled=False)
                    save_translation_payload = Payload()
                    save_translation_payload.value_name = translated_text_value_name
                    core.add_button(save_translation_button,
                                    label='Save Translation',
                                    callback=self.save_prompt,
                                    callback_data=save_translation_payload,
                                    enabled=False)

                # creating the Text tab
                with tabs[1]:
                    core.add_text('File Text:')
                    core.add_spacing(count=1, name=text_spacer)

                    # this is the text box that holds the text extracted with OCR
                    core.add_text(f'text_box_{unique_id}',
                                  source=text_value_name)

                # creating the Translation tab
                with tabs[2]:
                    core.add_text('Translated text:')
                    core.add_spacing(count=1, name=translated_text_spacer)

                    # this is the text box that holds the translated text response
                    core.add_text(f'translated_text_box_{unique_id}',
                                  source=translated_text_value_name)

        # add the window to the window list
        self.convert_window_list += [convert_window]