コード例 #1
0
ファイル: widgets.py プロジェクト: sharksmhi/SHARKtools
    def _set_frame_listbox_parameters(self):

        self.listbox_widget_parameters = tkw.ListboxSelectionWidget(
            self.frame_parameters,
            prop_frame={},
            prop_items={'height': 4},
            prop_selected={'height': 4},
            items=[],
            selected_items=[],
            title_items='Available parameters',
            title_selected='Selected parameters',
            font=None,
            include_button_move_all_items=True,
            include_button_move_all_selected=True,
            callback_match_in_file=None,
            callback_match_subselection=None,
            sort_selected=False,
            include_blank_item=False,
            target=None,
            target_select=None,
            target_deselect=None,
            bind_tab_entry_items=None,
            widget_id=u'',
            allow_nr_selected=None,
            vertical=False)
        tkw.grid_configure(self.frame_parameters)
コード例 #2
0
    def _set_labelframe_files(self):
        frame = self.frame_files
        opt = {'padx': 5, 'pady': 5, 'sticky': 'nw'}
        self.combobox_files = tkw.ComboboxWidget(
            frame,
            align='horizontal',
            title='Show file',
            items=self.settings_files.get_list(),
            callback_target=self._on_select_file,
            **opt)
        frame_save = tk.Frame(frame)
        frame_save.grid(row=0, column=1, **opt)

        tkw.grid_configure(frame, nr_rows=1, nr_columns=2)

        self.button_save = tk.Button(frame_save,
                                     text='Save',
                                     command=self._save_file)
        self.button_save.grid(row=0, column=0, **opt)

        self.button_save_as = tk.Button(frame_save,
                                        text='Save as',
                                        command=self._save_file_as)
        self.button_save_as.grid(row=0, column=1, **opt)

        tkw.grid_configure(frame_save, nr_rows=0, nr_columns=2)

        self.combobox_files.set_value(
            self.user.sampling_type_settings.setdefault(
                'show_file',
                self.settings_files.get_list()[0]))
コード例 #3
0
    def _set_frame_source(self):
        frame = self.labelframe_source

        self.directory_widget_mit = tkw.DirectoryWidgetLabelframe(
            frame,
            label='MIT directory',
            default_directory=self.default_import_directory,
            callback=self._save_settings_to_user,
            row=0,
            column=0,
            **self.grid)

        self.directory_widget_co2 = tkw.DirectoryWidgetLabelframe(
            frame,
            label='CO2 directory',
            default_directory=self.default_import_directory,
            callback=self._save_settings_to_user,
            row=1,
            column=0,
            **self.grid)

        self.button_inspect_file = tk.Button(frame,
                                             text='Inspect files',
                                             command=self._inspect_files,
                                             bg='mediumseagreen')
        self.button_inspect_file.grid(row=2, column=0, **self.grid)

        tkw.grid_configure(frame, nr_rows=3)
コード例 #4
0
ファイル: main.py プロジェクト: sharksmhi/SHARKtools
    def _set_frame(self):
        self.frame_top = tk.Frame(self)
        # self.frame_mid = tk.Frame(self)
        self.frame_bot = tk.Frame(self)

        # Grid
        self.frame_top.grid(row=0, column=0, sticky="nsew")
        # self.frame_mid.grid(row=1, column=0, sticky="nsew")
        self.frame_bot.grid(row=2, column=0, sticky="nsew")

        # Gridconfigure
        tkw.grid_configure(self, nr_rows=3, r0=100, r1=5, r2=1)

        # ----------------------------------------------------------------------
        # Frame top
        # Create container in that will hold (show) all frames
        self.container = tk.Frame(self.frame_top)
        self.container.grid(row=0, column=0, sticky="nsew")
        tkw.grid_configure(self.frame_top)

        # ----------------------------------------------------------------------
        # # Frame mid
        # self.frame_mid_left = tk.Frame(self.frame_mid)
        # self.frame_mid_right = tk.Frame(self.frame_mid)
        #
        # # Grid
        # self.frame_mid_left.grid(row=0, column=0, sticky="nsew")
        # self.frame_mid_right.grid(row=0, column=1, sticky="nsew")
        #
        # # Gridconfigure
        # tkw.grid_configure(self.frame_mid, nr_columns=2)

        # ----------------------------------------------------------------------
        # Frame bot
        self._set_frame_bot()
コード例 #5
0
    def _set_frame(self):
        self.grid = dict(padx=5, pady=5, sticky='nsew')

        self.labelframe_file_inspection = tk.LabelFrame(self,
                                                        text='File_inspection')
        self.labelframe_file_inspection.grid(row=0,
                                             column=0,
                                             columnspan=3,
                                             **self.grid)

        self.labelframe_source = tk.LabelFrame(self, text='Source')
        self.labelframe_source.grid(row=1, column=0, rowspan=2, **self.grid)

        self.labelframe_options = tk.LabelFrame(self, text='Merge options')
        self.labelframe_options.grid(row=1, column=1, rowspan=2, **self.grid)

        self.labelframe_merge = tk.LabelFrame(self, text='Merge')
        self.labelframe_merge.grid(row=1, column=2, **self.grid)

        self.labelframe_qc = tk.LabelFrame(self, text='QC files')
        self.labelframe_qc.grid(row=2, column=2, **self.grid)

        tkw.grid_configure(self, nr_rows=3, nr_columns=3)

        self._set_frame_file_inspection()
        self._set_frame_source()
        self._set_frame_options()
        self._set_frame_merge()
        self._set_frame_qc()

        self._set_directories()

        self._enable_and_disable()
コード例 #6
0
ファイル: page_about.py プロジェクト: sharksmhi/SHARKtools
    def _set_frame(self):
        padx = 5
        pady = 5

        self.labelframe_about = tk.LabelFrame(self, text='About')
        self.labelframe_about.grid(row=0,
                                   column=0,
                                   sticky='nsew',
                                   padx=padx,
                                   pady=pady)

        self.labelframe_developed = tk.LabelFrame(self, text='Developed by')
        self.labelframe_developed.grid(row=0,
                                       column=1,
                                       sticky='nsew',
                                       padx=padx,
                                       pady=pady)

        self.labelframe_cooperation = tk.LabelFrame(self,
                                                    text='In cooperation with')
        self.labelframe_cooperation.grid(row=0,
                                         column=2,
                                         sticky='nsew',
                                         padx=padx,
                                         pady=pady)

        tkw.grid_configure(self, nr_columns=3)

        self._set_frame_about()
        self._set_frame_developed()
        self._set_frame_cooperation()
コード例 #7
0
ファイル: page_about.py プロジェクト: sharksmhi/SHARKtools
    def _set_frame_developed(self):
        def _on_click_smhi_link(event):
            webbrowser.open_new(r'www.smhi.se')

        frame = self.labelframe_developed

        padx = 5
        pady = 5
        self.smhi_image = tk.PhotoImage(file=os.path.join(
            self.controller.app_directory, 'system/pic/smhi_logo.gif'))
        self.smhi_image_label = tk.Label(frame,
                                         image=self.smhi_image,
                                         cursor="hand2")
        self.smhi_image_label.grid(row=0,
                                   column=0,
                                   sticky='nsew',
                                   padx=padx,
                                   pady=pady)
        self.smhi_image_label.bind("<Button-1>", _on_click_smhi_link)

        self.smhi_link = tk.Label(frame,
                                  text=r'www.smhi.se',
                                  fg="blue",
                                  cursor="hand2")
        self.smhi_link.grid(row=1,
                            column=0,
                            sticky='nsew',
                            padx=padx,
                            pady=pady)
        self.smhi_link.bind("<Button-1>", _on_click_smhi_link)

        tkw.grid_configure(frame, nr_rows=2)
コード例 #8
0
ファイル: page_about.py プロジェクト: sharksmhi/SHARKtools
    def _set_frame_cooperation(self):
        def _on_click_jerico_link(event):
            webbrowser.open_new(r'www.jerico-ri.eu')

        frame = self.labelframe_cooperation

        padx = 5
        pady = 5
        self.jerico_image = tk.PhotoImage(
            file=os.path.join(self.controller.app_directory,
                              'system/pic/Logotype_Jerico_next.gif'))
        self.jerico_image_label = tk.Label(frame,
                                           image=self.jerico_image,
                                           cursor="hand2")
        self.jerico_image_label.grid(row=0,
                                     column=0,
                                     sticky='nsew',
                                     padx=padx,
                                     pady=pady)
        self.jerico_image_label.bind("<Button-1>", _on_click_jerico_link)

        self.jerico_link = tk.Label(frame,
                                    text=r'www.jerico-ri.eu',
                                    fg="blue",
                                    cursor="hand2")
        self.jerico_link.grid(row=1,
                              column=0,
                              sticky='nsew',
                              padx=padx,
                              pady=pady)
        self.jerico_link.bind("<Button-1>", _on_click_jerico_link)

        tkw.grid_configure(frame, nr_rows=2)
コード例 #9
0
    def _set_frame_color_maps(self):
        labelframe = self.labelframe_color_maps
        frame = tk.Frame(labelframe)
        frame.grid(row=0, column=0, sticky='nw')
        tkw.grid_configure(labelframe)

        cmap_list = core.Colormaps().get_list()
        self.widget_selected_cmap = tkw.ComboboxWidget(
            frame,
            items=cmap_list,
            title='',
            callback_target=self._on_select_colormap,
            row=0,
            column=0,
            sticky='w')

        # self.button_save_cmap = tk.Button(frame, text='Save colormaps', command=self._save_colormap, bg='lightgreen')
        # self.button_save_cmap.grid(row=0, column=1, sticky='w', padx=5, pady=5)

        self.widget_listbox_cmap = tkw.ListboxSelectionWidget(
            frame,
            row=1,
            column=0,
            sticky='nw',
            target=self._on_select_par_for_colormap)

        tkw.grid_configure(frame, nr_rows=2)

        self.current_pars_in_cmap = {}
コード例 #10
0
ファイル: widgets.py プロジェクト: sharksmhi/SHARKtools
    def display(self):
        padx = 5
        pady = 5

        self.popup_frame = tk.Toplevel(self.controller)
        x = self.controller.winfo_x()
        y = self.controller.winfo_y()

        # Set text
        self.label = tk.Label(self.popup_frame, text=self.text)
        self.label.grid(row=0, column=0, columnspan=2, padx=padx, pady=pady)

        self.entry = tkw.EntryWidget(self.popup_frame, entry_type='int')

        button_ok = tk.Button(self.popup_frame, text='Ok', command=self._ok)
        button_ok.grid(row=1, column=0, padx=padx, pady=pady)

        tkw.grid_configure(self.popup_frame, nr_columns=2, nr_rows=2)

        self.popup_frame.update_idletasks()

        root_dx = self.controller.winfo_width()
        root_dy = self.controller.winfo_height()

        dx = int(root_dx / 3)
        dy = int(root_dy / 3)
        w = self.popup_frame.winfo_width()
        h = self.popup_frame.winfo_height()
        self.popup_frame.geometry("%dx%d+%d+%d" % (w, h, x + dx, y + dy))
コード例 #11
0
    def _save_file_as(self):
        def _save_file():
            file_name = stringvar_entry.get()
            if not file_name:
                main_gui.show_information('Save file', 'No file name selected')
                return
            if file_name in self.settings_files.get_list():
                from tkinter import messagebox
                overwrite = messagebox.askyesno(
                    'Save file',
                    f'File name "{file_name}" exist. Would you like to overwrite this file?'
                )
                if not overwrite:
                    return
            try:
                self.settings_object.file_name = (file_name,
                                                  SETTINGS_FILES_DIRECTORY
                                                  )  # Setter method
                # Update Settings files object
                self.settings_files.add_directory(
                    SETTINGS_FILES_DIRECTORY)  # This will update files
                self.settings_object.save()
                # Update combobox
                self._update_combobox_files()
                self.combobox_files.set_value(file_name)
                self.user.sampling_type_settings.setdefault(
                    'show_file', file_name)
            except GISMOExceptionSaveNotAllowed:
                main_gui.show_warning(
                    'Saving Sampling type settings',
                    f'Not allowed to overwrite file {self.settings_object.file_name}. '
                    f'Please save with a different name. ')
            except GUIException as e:
                main_gui.show_error(
                    'Save file',
                    '{}\nSomething went wrong Try again!'.format(e.message))
            popup_frame.destroy()

        def _cancel():
            popup_frame.destroy()

        popup_frame = tk.Toplevel(self)

        grid = dict(sticky='w', padx=5, pady=5)

        tk.Label(popup_frame, text='File name:').grid(row=0, column=0, **grid)
        stringvar_entry = tk.StringVar()
        entry = tk.Entry(popup_frame, textvariable=stringvar_entry, width=40)
        entry.grid(row=1, column=0, columnspan=2, **grid)

        widget_button_done = tk.Button(popup_frame,
                                       text='Save file',
                                       command=_save_file)
        widget_button_done.grid(row=2, column=0, **grid)
        widget_button_done = tk.Button(popup_frame,
                                       text='Cancel',
                                       command=_cancel)
        widget_button_done.grid(row=2, column=1, **grid)
        tkw.grid_configure(popup_frame, nr_rows=3, nr_columns=2)
コード例 #12
0
    def _set_frame(self):
        self.combobox_metadata_files = tkw.ComboboxWidget(self,
                                                          title='Show metadata for file',
                                                          prop_combobox={'width': 60},
                                                          sticky='w',
                                                          callback_target=self._update_treeview)
        self.treeview_metadata = tkw.TreeviewWidget(self,
                                                    columns=['Metadata', 'Value'],
                                                    row=1)

        tkw.grid_configure(self, nr_rows=2, r1=20)
コード例 #13
0
    def _set_frame_bot(self):
        self.frame_info = tk.Frame(self.frame_bot)
        self.frame_info.grid(row=0, column=0, sticky="nsew")
        self.frame_progress = tk.Frame(self.frame_bot)
        self.progress_widget = tkw.ProgressbarWidget(self.frame_progress,
                                                     sticky='nsew')

        # self.info_widget = tkw.LabelFrameLabel(self.frame_info, pack=False)

        tkw.grid_configure(self.frame_info)

        tkw.grid_configure(self.frame_bot)
コード例 #14
0
    def _set_frame(self):

        opt = {'padx': 5, 'pady': 5, 'sticky': 'nsew'}

        padx = 5
        pady = 5

        # User
        self.user_frame = tk.Frame(self)
        self.user_frame.grid(row=0, column=0, **opt)
        tk.Label(self.user_frame, text='Settings for user:'******'w',
                                                                  padx=padx,
                                                                  pady=pady)

        self.stringvar_user = tk.StringVar()
        tk.Label(self.user_frame,
                 textvariable=self.stringvar_user).grid(row=0,
                                                        column=1,
                                                        sticky='w',
                                                        padx=padx,
                                                        pady=pady)
        tkw.grid_configure(self.user_frame, nr_columns=2)

        r = 1
        # -----------------------------------------------------------------------
        # Creating frames
        self.labelframe_map = ttk.Labelframe(self, text='Map')
        self.labelframe_map.grid(row=r, column=0, **opt)

        self.labelframe_color_maps = ttk.Labelframe(self, text='Color maps')
        self.labelframe_color_maps.grid(row=r, column=1, **opt)

        self.labelframe_plot_ref = ttk.Labelframe(self,
                                                  text='Plot reference data')
        self.labelframe_plot_ref.grid(row=r, column=2, **opt)

        r += 1
        self.labelframe_options = ttk.Labelframe(self, text='Other options')
        self.labelframe_options.grid(row=r, column=0, **opt)

        self.labelframe_plot_style = ttk.Labelframe(self, text='Plot style')
        self.labelframe_plot_style.grid(row=r, column=1, **opt)

        tkw.grid_configure(self, nr_rows=3, nr_columns=3, r1=10)

        self._set_frame_map()
        self._set_frame_color_maps()
        self._set_frame_plot_ref()
        self._set_frame_plot_style()
        self._set_frame_options()
コード例 #15
0
    def _set_frame_merge(self):
        frame = self.labelframe_merge
        r = 0
        self.button_merge = tk.Button(frame,
                                      text='Merge data and calculate',
                                      command=self._merge_data,
                                      bg='mediumseagreen')
        self.button_merge.grid(row=r, column=0, columnspan=2, **self.grid)
        r += 1

        tk.Label(frame, text='Export directory').grid(row=r,
                                                      column=0,
                                                      columnspan=2,
                                                      sticky='nw')
        r += 1
        self.directory_widget_save_merge = tkw.DirectoryWidget(
            frame,
            default_directory=self.default_export_directory,
            callback=self._save_settings_to_user,
            row=r,
            column=0,
            columnspan=2,
            sticky='nw')
        r += 1

        self.stringvar_include_types = tk.StringVar()
        tk.Label(frame, text='Include CO2 Types').grid(row=r,
                                                       column=0,
                                                       sticky='nw')
        tk.Label(frame,
                 textvariable=self.stringvar_include_types).grid(row=r,
                                                                 column=1,
                                                                 sticky='nw')
        r += 1

        self.stringvar_exclude_types = tk.StringVar()
        tk.Label(frame, text='Exclude CO2 Types').grid(row=r,
                                                       column=0,
                                                       sticky='nw')
        tk.Label(frame,
                 textvariable=self.stringvar_exclude_types).grid(row=r,
                                                                 column=1,
                                                                 sticky='nw')
        r += 1

        self.button_save_merge = tk.Button(frame,
                                           text='Save merge data',
                                           command=self._export_data,
                                           bg='mediumseagreen')
        self.button_save_merge.grid(row=r, column=0, columnspan=2, **self.grid)

        tkw.grid_configure(frame, nr_rows=r + 1, nr_columns=1)
コード例 #16
0
ファイル: main.py プロジェクト: sharksmhi/SHARKtools
    def _set_frame_bot(self):
        self.frame_info = tk.Frame(self.frame_bot)
        self.frame_info.grid(row=0, column=0, sticky="nsew")

        # TODO: Progressbar deactivated. Threading not working as expected.
        self.frame_progress = tk.Frame(self.frame_bot)

        self.progress_widget = tkw.ProgressbarWidget(self.frame_progress, sticky='nsew')

        self.info_widget = tkw.LabelFrameLabel(self.frame_info, pack=False)

        tkw.grid_configure(self.frame_info)

        tkw.grid_configure(self.frame_bot)
コード例 #17
0
    def _set_frame_file_inspection(self):
        frame = self.labelframe_file_inspection
        self.notebook_widget_files = tkw.NotebookWidget(
            frame, frames=['MIT files', 'CO2 files', 'Files with errors'])
        tkw.grid_configure(frame)

        self.columns_files = [
            'File name', 'Start time', 'End time', 'File path',
            'File size (kB)'
        ]
        self.table_widget_mit = tkw.TableWidget(
            self.notebook_widget_files.frame_mit_files,
            columns=self.columns_files,
            int_columns=['File size (kB)'])
        self.table_widget_co2 = tkw.TableWidget(
            self.notebook_widget_files.frame_co2_files,
            columns=self.columns_files,
            int_columns=['File size (kB)'])
        self.table_widget_err = tkw.TableWidget(
            self.notebook_widget_files.frame_files_with_errors,
            columns=self.columns_files,
            int_columns=['File size (kB)'])
        tkw.grid_configure(self.notebook_widget_files.frame_mit_files)
        tkw.grid_configure(self.notebook_widget_files.frame_co2_files)
        tkw.grid_configure(self.notebook_widget_files.frame_files_with_errors)
コード例 #18
0
    def _set_frame_bot(self):
        self.frame_info = tk.Frame(self.frame_bot)
        self.frame_info.grid(row=0, column=0, sticky="nsew")

        # ttk.Separator(self.frame_bot, orient=tk.VERTICAL).grid(row=0, column=1, sticky='ns')

        self.frame_progress = tk.Frame(self.frame_bot)
        # self.frame_progress.grid(row=0, column=2, sticky="nsew")
        self.progress_widget = tkw.ProgressbarWidget(self.frame_progress,
                                                     sticky='nsew')

        self.info_widget = tkw.LabelFrameLabel(self.frame_info, pack=False)

        tkw.grid_configure(self.frame_info)
        tkw.grid_configure(self.frame_bot)
コード例 #19
0
    def _set_frame_loaded_files(self):
        """
        Created     20180821
        """
        frame = self.frame_loaded

        prop_listbox = {'height': 4}
        self.listbox_widget_loaded_files = tkw.ListboxWidget(
            frame,
            include_delete_button=False,
            # include_delete_button='Remove source',
            prop_listbox=prop_listbox,
            callback_delete_button=self._delete_source,
            padx=1,
            pady=1)

        tkw.grid_configure(frame)
コード例 #20
0
ファイル: widgets.py プロジェクト: sharksmhi/SHARKtools
    def show_information(self, text=''):

        try:
            if not self.user_manager.user.options.setdefault(
                    'show_info_popups', True):
                return
        except:
            pass

        padx = 5
        pady = 5

        self.popup_frame = tk.Toplevel(self.controller)
        x = self.controller.winfo_x()
        y = self.controller.winfo_y()

        # Set text
        # text = self._format_text(text)
        self.label = tk.Label(self.popup_frame, text=text)
        self.label.grid(row=0, column=0, columnspan=2, padx=padx, pady=pady)
        self.label.bind('<Configure>', self._update_wrap)

        button_ok = tk.Button(self.popup_frame,
                              text='Great tip!\nKeep them coming!',
                              command=self._ok)
        button_ok.grid(row=1, column=0, padx=padx, pady=pady)

        button_ok_and_forget = tk.Button(
            self.popup_frame,
            text="Thanks,\nbut I don't need tips anymore!",
            command=self._ok_and_forget)
        button_ok_and_forget.grid(row=1, column=1, padx=padx, pady=pady)

        tkw.grid_configure(self.popup_frame, nr_columns=2, nr_rows=2)

        self.popup_frame.update_idletasks()

        root_dx = self.controller.winfo_width()
        root_dy = self.controller.winfo_height()

        dx = int(root_dx / 3)
        dy = int(root_dy / 3)
        w = self.popup_frame.winfo_width()
        h = self.popup_frame.winfo_height()
        self.popup_frame.geometry("%dx%d+%d+%d" % (w, h, x + dx, y + dy))
コード例 #21
0
    def _set_frame_options(self):
        def _on_change():
            self.user.options.set('show_info_popups',
                                  self.intvar_show_info_popup.get())

        frame = self.labelframe_options
        self.intvar_show_info_popup = tk.IntVar()
        self.checkbutton_show_info_popup = tk.Checkbutton(
            frame,
            text='Show help info popups',
            variable=self.intvar_show_info_popup,
            command=_on_change)
        self.checkbutton_show_info_popup.grid(row=0,
                                              column=0,
                                              padx=5,
                                              pady=5,
                                              sticky='nw')
        tkw.grid_configure(frame)
コード例 #22
0
    def _build(self):
        padding = dict(padx=15, pady=15)

        frame_working_directory = ttk.LabelFrame(self,
                                                 text='Working directory')
        frame_working_directory.grid(row=0, column=0, sticky='nsew', **padding)

        frame_metadata_file = ttk.LabelFrame(self, text='Create metadata file')
        frame_metadata_file.grid(row=1, column=0, sticky='nsew', **padding)

        frame_standard_format = ttk.LabelFrame(
            self, text='Create standard format files')
        frame_standard_format.grid(row=2, column=0, sticky='nsew', **padding)

        tkw.grid_configure(self, nr_columns=1, nr_rows=3)

        self._build_frame_working_directory(frame_working_directory)
        self._build_frame_metadata_file(frame_metadata_file)
        self._build_frame_standard_format(frame_standard_format)
コード例 #23
0
ファイル: page_about.py プロジェクト: sharksmhi/SHARKtools
    def _set_frame_about(self):
        def _on_click_mit_link(event):
            webbrowser.open_new(r'https://opensource.org/licenses/MIT')

        frame = self.labelframe_about

        padx = 5
        pady = 5
        tk.Label(frame, text='GISMOtoolbox',
                 font=("Times New Roman", 40)).grid(row=0,
                                                    column=0,
                                                    sticky='nsew',
                                                    padx=padx,
                                                    pady=pady)
        tk.Label(frame,
                 text='Version {}'.format(self.controller.version),
                 font=("Times New Roman", 10)).grid(row=1,
                                                    column=0,
                                                    sticky='nsew',
                                                    padx=padx,
                                                    pady=pady)
        # tk.Label(frame, text='').grid(row=1, column=0, sticky='nsew', padx=padx, pady=pady)
        self.info_label = tk.Label(frame, text=core.texts.about())
        self.info_label.grid(row=2,
                             column=0,
                             sticky='nsew',
                             padx=padx,
                             pady=pady)
        self.info_label.bind('<Configure>', self._update_wrap)

        self.mit_link = tk.Label(frame,
                                 text=r'https://opensource.org/licenses/MIT',
                                 fg="blue",
                                 cursor="hand2")
        self.mit_link.grid(row=3,
                           column=0,
                           sticky='nsew',
                           padx=padx,
                           pady=pady)
        self.mit_link.bind("<Button-1>", _on_click_mit_link)

        tkw.grid_configure(frame, nr_rows=4, r0=10, r2=10)
コード例 #24
0
ファイル: main.py プロジェクト: sharksmhi/SHARKtools
    def _create_new_user(self):
        def _create_user():
            source_user = widget_source_user.get_value().strip()
            new_user_name = widget_new_user_name.get_value().strip()
            if not new_user_name:
                gui.show_information('Create user', 'No user name given!')
                return
            if not source_user:
                source_user = None
            try:
                self.user_manager.add_user(new_user_name, source_user)
                if intvar_load_user.get():
                    self._change_user(new_user_name)
                self._update_menubar_users()
            except GUIExceptionUserError as e:
                gui.show_error('Creating user', '{}\nUser not created. Try again!'.format(e.message))
            popup_frame.destroy()

        def _cancel():
            popup_frame.destroy()

        popup_frame = tk.Toplevel(self)
        current_user_list = [''] + self.user_manager.get_user_list()

        grid = dict(sticky='w',
                    padx=5,
                    pady=5)

        widget_source_user = tkw.ComboboxWidget(popup_frame, title='Create copy of user', items=current_user_list,
                                                **grid)
        widget_new_user_name = tkw.EntryWidget(popup_frame, row=1, **grid)

        intvar_load_user = tk.IntVar()
        widget_checkbutton_load_user = tk.Checkbutton(popup_frame, text="Load new user", variable=intvar_load_user)
        widget_checkbutton_load_user.grid(row=1, column=1, **grid)
        intvar_load_user.set(1)

        widget_button_done = tk.Button(popup_frame, text='Create user', command=_create_user)
        widget_button_done.grid(row=2, column=0, **grid)
        widget_button_done = tk.Button(popup_frame, text='Cancel', command=_cancel)
        widget_button_done.grid(row=2, column=1, **grid)
        tkw.grid_configure(popup_frame, nr_rows=3, nr_columns=2)
コード例 #25
0
    def _set_frame(self):
        self.frame_top = tk.Frame(self, bg='red')
        self.frame_bot = tk.Frame(self, bg='blue')

        self.frame_top.grid(row=0, column=0, sticky="nsew")
        self.frame_bot.grid(row=2, column=0, sticky="nsew")

        # Gridconfigure
        tkw.grid_configure(self, nr_rows=3, r0=100, r1=5, r2=1)

        #----------------------------------------------------------------------
        # Frame top
        # Create container in that will hold (show) all frames
        self.container = tk.Frame(self.frame_top)
        self.container.grid(row=0, column=0, sticky="nsew")
        tkw.grid_configure(self.frame_top)

        #----------------------------------------------------------------------
        # Frame bot
        self._set_frame_bot()
コード例 #26
0
    def _set_frame_qc(self):
        frame = self.labelframe_qc
        r = 0
        tk.Label(frame,
                 text='Work with files in directory:').grid(row=r,
                                                            column=0,
                                                            columnspan=3,
                                                            sticky='nw')
        r += 1
        self.directory_widget_qc = tkw.DirectoryWidget(
            frame,
            default_directory=self.default_export_directory,
            callback=self._enable_and_disable,
            prop_entry={'width': 100},
            row=r,
            column=0,
            columnspan=3,
            sticky='nw')
        r += 1

        self.button_create_qc0_file = tk.Button(frame,
                                                text='Create QC0 file',
                                                command=self._create_qc0_file,
                                                bg='mediumseagreen')
        self.button_create_qc0_file.grid(row=r, column=0, **self.grid)

        self.button_add_qc_columns = tk.Button(frame,
                                               text='Add QC columns',
                                               command=self._add_qc_columns,
                                               bg='mediumseagreen')
        self.button_add_qc_columns.grid(row=r, column=1, **self.grid)

        self.button_add_qc0_to_merge = tk.Button(
            frame,
            text='Add QC0 to merged file',
            command=self._add_qc0_to_merge,
            bg='mediumseagreen')
        self.button_add_qc0_to_merge.grid(row=r, column=2, **self.grid)

        tkw.grid_configure(frame, nr_rows=r + 1, nr_columns=3)
コード例 #27
0
    def startup(self):
        """

        :return:
        """
        padding = dict(padx=50, pady=50, sticky='nsew')

        button_basic = ttk.Button(
            self,
            text='Basic',
            command=lambda: self.parent_app.show_frame('PageBasic'))
        button_basic.grid(row=0, column=0, **padding)

        button_advanced = ttk.Button(
            self,
            text='Advanced',
            command=lambda: self.parent_app.show_frame('PageAdvanced'))
        button_advanced.grid(row=0, column=1, **padding)

        tkw.grid_configure(self, nr_columns=2)

        self.update_page()
コード例 #28
0
    def _set_frame(self):

        opt = {'padx': 5, 'pady': 5, 'sticky': 'nsew'}

        self.frame_files = tk.LabelFrame(self, text='Settings file')
        self.frame_files.grid(row=0, column=0, columnspan=2, **opt)

        r = 1
        self.frame_dependent_parameters = tk.LabelFrame(
            self, text='Dependent parameters', bg='pink')
        self.frame_dependent_parameters.grid(row=r, column=0, **opt)

        self.frame_flags = tk.LabelFrame(self, text='Flags', bg='lightyellow')
        self.frame_flags.grid(row=r, column=1, **opt)

        r += 1
        self.frame_mandatory_columns = tk.LabelFrame(self,
                                                     text='Mandatory columns',
                                                     bg='lightgreen')
        self.frame_mandatory_columns.grid(row=r, column=0, **opt)

        self.frame_parameter_mapping = tk.LabelFrame(self,
                                                     text='Parameter mapping',
                                                     bg='lightblue')
        self.frame_parameter_mapping.grid(row=r, column=1, **opt)

        r += 1
        self.frame_station_mapping = tk.LabelFrame(self,
                                                   text='Station mapping',
                                                   bg='lightseagreen')
        self.frame_station_mapping.grid(row=r, column=0, **opt)

        self.frame_properties = tk.LabelFrame(self,
                                              text='Properties',
                                              bg='sandybrown')
        self.frame_properties.grid(row=r, column=1, **opt)

        tkw.grid_configure(self, nr_rows=4, nr_columns=2, r1=10, r2=10)
コード例 #29
0
 def _set_frame_plot_style(self):
     labelframe = self.labelframe_plot_style
     frame = tk.Frame(labelframe)
     frame.grid(row=0, column=0, sticky='nw')
     tkw.grid_configure(labelframe)
     style_list = plt.style.available
     self.widget_selected_plotstyle = tkw.ComboboxWidget(
         frame,
         items=style_list,
         title='',
         callback_target=self._on_select_plotstyle,
         row=0,
         column=0,
         sticky='nw')
     self.widget_selected_plotstyle.set_value(
         self.user.layout.setdefault('plotstyle',
                                     self.settings['default']['plotstyle']))
     tk.Label(
         frame,
         text=
         'Note that you have to restart\nthe program to activate the\nnew plot style.'
     ).grid(row=1, column=0, pady=10, sticky='nw')
     tkw.grid_configure(frame, nr_rows=2)
コード例 #30
0
ファイル: widgets.py プロジェクト: sharksmhi/SHARKtools
    def _set_frame(self):
        padx = 5
        pady = 5

        frame = tk.Frame(self)
        frame.grid(row=0, column=0, padx=padx, pady=pady, sticky='w')

        self.frame_parameters = tk.Frame(frame)
        # self.frame_parameters = tk.LabelFrame(frame, text='Parameters to export')
        self.frame_parameters.grid(row=0,
                                   column=0,
                                   columnspan=1,
                                   padx=padx,
                                   pady=pady,
                                   sticky='nsew')

        self.checkbutton_widget = tkw.CheckbuttonWidget(
            frame,
            items=['Combined plot', 'Individual plots'],
            pre_checked_items=[],
            include_select_all=False,
            colors=[],
            pady=0,
            row=0,
            column=1)

        ttk.Button(frame, text='Export',
                   command=self._save_file).grid(row=1,
                                                 column=0,
                                                 columnspan=2,
                                                 padx=padx,
                                                 pady=pady,
                                                 sticky='sw')

        tkw.grid_configure(frame, nr_rows=2, nr_columns=2)

        self._set_frame_listbox_parameters()