def update_interface(self): self.table = tablewidget.TableWidget(self.shemetype, "sections") self.table.addColumn("qx", "list", variant=["нет", "-", "+"]) self.table.addColumn("qy", "list", variant=["нет", "-", "+"]) self.table.addColumn("qz", "list", variant=["нет", "-", "+"]) self.table.addColumn("mx", "list", variant=["нет", "-", "+"]) self.table.addColumn("my", "list", variant=["нет", "-", "+"]) self.table.addColumn("mz", "list", variant=["нет", "-", "+"]) self.table.updateTable() self.table.updated.connect(self.table_clearing) self.table.updated.connect(self.redraw) self.vlayout.addWidget(self.table) self.table2 = tablewidget.TableWidget(self.shemetype, "labels") self.table2.addColumn("text", "str") #self.table2.addColumn("x", "int") #self.table2.addColumn("y", "int") if self.shemetype.second_cube.get(): self.table2.addColumn("text2", "str") #self.table2.addColumn("x2", "int") #self.table2.addColumn("y2", "int") self.table_clearing() self.table2.updateTable() self.table2.updated.connect(self.redraw) self.table2.setVerticalHeaderLabels( ["qx", "qy", "qz", "mx", "my", "mz"]) self.vlayout.addWidget(self.table2) self.vlayout.addWidget(self.sett) self.vlayout.addWidget(self.shemetype.texteditor) self.setLayout(self.vlayout)
def update_interface(self): self.table = tablewidget.TableWidget(self.shemetype, "sections") self.table2 = tablewidget.TableWidget(self.shemetype, "betsect") self.table = tablewidget.TableWidget(self.shemetype, "sections") self.table.addColumn("l", "float", "Длина") self.table.updateTable() self.table2 = tablewidget.TableWidget(self.shemetype, "betsect") self.table2.addColumn("xF", "list", variant=["нет", "+", "-"]) self.table2.addColumn("xFtxt", "str", "xF") self.table2.addColumn("yF", "list", variant=["нет", "+", "-"]) self.table2.addColumn("yFtxt", "str", "yF") self.table2.addColumn("xM", "list", variant=["нет", "+", "-"]) self.table2.addColumn("xMtxt", "str", "xM") self.table2.addColumn("yM", "list", variant=["нет", "+", "-"]) self.table2.addColumn("yMtxt", "str", "yM") self.table2.updateTable() self.vlayout.addWidget(QLabel("Геометрия:")) self.vlayout.addWidget(self.table) self.vlayout.addWidget(QLabel("Локальные силы:")) self.vlayout.addWidget(self.table2) self.vlayout.addWidget(self.sett) self.table.updated.connect(self.redraw) self.table2.updated.connect(self.redraw) self.vlayout.addWidget(self.shemetype.texteditor)
def update_interface(self): self.table = tablewidget.TableWidget(self.shemetype, "sections") self.table2 = tablewidget.TableWidget(self.shemetype, "sections") self.table.addColumn("start_from", "int", "ВыходитИз") self.table.addColumn("l", "float", "Длина") self.table.addColumn("angle", "float", "Угол") #self.table.addColumn("wide", "bool", "Жесткий") self.table2.addColumn("body", "bool", "Стержень") self.table2.addColumn("force", "list", "Сила", variant=["нет", "к", "от", "вдоль"]) self.table2.addColumn("ftxt", "str", "Сила") self.table2.addColumn("alttxt", "bool", "Пол.Ткст.") self.table2.addColumn("addangle", "float", "Доб.Угол") self.table2.addColumn("sharn", "list", "Шарн.", variant=["нет", "шарн", "шарн+заделка"]) #self.table.addColumn("insharn", "list", "ВхШарн.", variant=["нет", "шарн"]) self.table.updateTable() self.table2.updateTable() self.table.hover_hint.connect(self.hover_sect) self.table2.hover_hint.connect(self.hover_sect) self.table.unhover.connect(self.table_unhover) self.table2.unhover.connect(self.table_unhover) self.vlayout.addWidget(self.table) self.vlayout.addWidget(self.table2) self.vlayout.addWidget(self.sett) self.table.updated.connect(self.redraw) self.table2.updated.connect(self.redraw) self.vlayout.addWidget(self.shemetype.texteditor)
def update_interface(self): self.table = tablewidget.TableWidget(self.shemetype, "sections") self.table.addColumn("l", "float", "Длина секции") self.table.addColumn("label", "str", "Подпись") self.table.addColumn("label_height", "float", "Расположение подписи") self.table.addColumn("dims", "bool", "Отрисовка разм.") self.table.updateTable() self.table3 = tablewidget.TableWidget(self.shemetype, "betsect") self.table3.addColumn("l", "float", "Длина опоры") self.table3.addColumn("A", "float", "Площадь(А)") self.table3.addColumn("sterzn_text1", "str", "Текст1") self.table3.addColumn("sterzn_text2", "str", "Текст2") self.table3.addColumn("sterzn_text_off", "float", "ТСмещ.") self.table3.addColumn("sterzn_text_horizontal", "bool", "Гориз./Верт.") self.table3.addColumn("sterzn_text_alt", "bool", "Слева./Справа.") self.table3.addColumn("sharn", "list", "Шарнир", variant=["нет", "1", "2"]) self.table3.updateTable() self.table2 = tablewidget.TableWidget(self.shemetype, "betsect") self.table2.addColumn("lbl", "str", "М.Стержень") #self.table2.addColumn("sectlbl", "str", "М.Сечение") self.table2.addColumn("F", "list", "Сила", variant=["нет", "+", "-"]) self.table2.addColumn("Ftxt", "str", "Текст") self.table2.addColumn("F2", "list", "Ст.Сила", variant=["нет", "+", "-"]) self.table2.addColumn("F2txt", "str", "Ст.Текст") self.table2.addColumn("zazor", "bool", "Зазор") self.table2.addColumn("zazor_txt", "str", "З.Текст") self.table2.updateTable() self.vlayout.addWidget(QLabel("Геометрия секций:")) self.vlayout.addWidget(self.table) self.vlayout.addWidget(QLabel("Геометрия стержня, шарниры:")) self.vlayout.addWidget(self.table3) self.vlayout.addWidget(QLabel("Силы прилож. к стержню, зазоры, метки:")) self.vlayout.addWidget(self.table2) self.vlayout.addWidget(self.sett) self.table.updated.connect(self.redraw) self.table2.updated.connect(self.redraw) self.table3.updated.connect(self.redraw) self.table2.hover_hint.connect(self.hover_node) self.table3.hover_hint.connect(self.hover_node) self.table2.unhover.connect(self.table_unhover) self.table3.unhover.connect(self.table_unhover) self.vlayout.addWidget(self.shemetype.texteditor)
def update_interface(self): self.table = tablewidget.TableWidget(self.shemetype, "sections") self.table.addColumn("d", "float", "Длина") self.table.addColumn("dtext", "str", "Текст") self.table.addColumn("dtext_en", "bool", "Текст") self.table.addColumn("h", "float", "Высота") self.table.addColumn("htext", "str", "Текст") self.table.addColumn("htext_en", "bool", "Текст") self.table.addColumn("shtrih", "bool", "Штрих") self.table.addColumn("intgran", "bool", "Вн гран") self.table.updateTable() self.table1 = tablewidget.TableWidget(self.shemetype, "sectforce") self.table1.addColumn("distrib", "bool", "Распр. нагрузка") self.table1.updateTable() self.table2 = tablewidget.TableWidget(self.shemetype, "betsect") self.table2.addColumn("fen", "list", "Сила", variant=["нет", "+", "-"]) self.table2.addColumn("men", "list", "Момент", variant=["нет", "+", "-"]) self.table2.addColumn("sharn", "list", "Шарнир", variant=["нет", "1", "2"]) self.table2.updateTable() #self.table2.addColumn("l", "float", "Длина опоры") #self.table2.updateTable() self.vlayout.addWidget(QLabel("Геометрия:")) self.vlayout.addWidget(self.table) self.vlayout.addWidget(QLabel("Распределённые силы:")) self.vlayout.addWidget(self.table1) self.vlayout.addWidget(QLabel("Локальные силы:")) self.vlayout.addWidget(self.table2) self.vlayout.addWidget(self.sett) self.table.updated.connect(self.redraw) self.table1.updated.connect(self.redraw) self.table2.updated.connect(self.redraw) self.vlayout.addWidget(self.shemetype.texteditor)
def update_stats(self): """ Function is used after volume generation and save. :return: """ import tablewidget self._wg_tab_overall.deleteLater() self._wg_tab_overall = None # self._wg_tab_describe.deleteLater() # self._wg_tables dfoverall = self.teigen.dataframes["overall"] self._wg_tab_overall = tablewidget.TableWidget(self, dataframe=dfoverall) self._wg_tab_overall.setMaximumHeight(80) self._wg_tables.layout().addWidget(self._wg_tab_overall) output_path = QLabel() output_path.setText(self.teigen.filepattern_fill_series()) self._wg_tables.layout().addWidget(output_path) # self._wg_tab_describe.deleteLater() # self._wg_tab_describe = None # self._wg_tab_merne.deleteLater() # self._wg_tab_merne = None # Show surface measurement_multiplier = self.teigen.config[CKEY_OUTPUT][ "aposteriori_measurement_multiplier"] surface_measurement = self.teigen.config[CKEY_OUTPUT][ "aposteriori_measurement"] show_surface = self.teigen.config[CKEY_APPEARANCE][ "show_aposteriori_surface"] if surface_measurement and (measurement_multiplier > 0) and show_surface: fig = plt.figure() self._surface_figure = fig self._surface_canvas = FigureCanvas(self._surface_figure) # self.toolbar = NavigationToolbar(self.canvas, self) run_number_alpha = chr(ord("A") + self.run_number) self.actual_subtab_wg.addTab( self._surface_canvas, 'Aposteriori Surface ' + run_number_alpha) # import matplotlib.pyplot as plt from mpl_toolkits.mplot3d.art3d import Poly3DCollection faces, vertices = self.teigen.get_aposteriori_faces_and_vertices() # fig = plt.figure(figsize=(10, 10)) ax = fig.add_subplot(111, projection='3d') # Fancy indexing: `verts[faces]` to generate a collection of triangles mesh = Poly3DCollection(vertices[faces]) mesh.set_edgecolor('r') ax.add_collection3d(mesh) sh = self.teigen._numeric_surface_measurement_shape ax.set_xlim(0, sh[0]) # a = 6 (times two for 2nd ellipsoid) ax.set_ylim(0, sh[1]) # b = 10 ax.set_zlim(0, sh[2]) # c = 16
def update_interface(self): self.table = tablewidget.TableWidget(self.shemetype, "sections") self.table.addColumn("D", "float") self.table.addColumn("Dtext", "str") self.table.updateTable() self.table.updated.connect(self.redraw) self.vlayout.addWidget(self.table) self.vlayout.addWidget(self.sett) self.vlayout.addWidget(self.shemetype.texteditor) self.setLayout(self.vlayout)
def update_interface(self): self.table = tablewidget.TableWidget(self.shemetype, "sections") self.table2 = tablewidget.TableWidget(self.shemetype, "betsect") self.table = tablewidget.TableWidget(self.shemetype, "sections") self.table.addColumn("l", "float", "Длина") self.table.updateTable() self.table2 = tablewidget.TableWidget(self.shemetype, "betsect") self.table2.addColumn("sectname", "str", "Имя") self.table2.addColumn("sharn", "list", "Шарн.", variant=["Нет", "1", "2"]) self.table2.addColumn("F", "list", variant=["Нет", "+", "-", "влево", "вправо"]) self.table2.addColumn("M", "list", variant=["Нет", "+", "-"]) self.table2.addColumn("FT", "str", "Текст F") self.table2.addColumn("MT", "str", "Текст M") self.table2.updateTable() self.table1 = tablewidget.TableWidget(self.shemetype, "sectforce") self.table1.addColumn("Fr", "list", "q", variant=["Нет", "+", "-"]) self.table1.addColumn("FrT", "str", "Текст q") self.table1.updateTable() self.vlayout.addWidget(QLabel("Геометрия:")) self.vlayout.addWidget(self.table) self.vlayout.addWidget(QLabel("Распределённые силы:")) self.vlayout.addWidget(self.table1) self.vlayout.addWidget(QLabel("Локальные силы:")) self.vlayout.addWidget(self.table2) self.vlayout.addWidget(self.sett) self.table.updated.connect(self.redraw) self.table1.updated.connect(self.redraw) self.table2.updated.connect(self.redraw) self.vlayout.addWidget(self.shemetype.texteditor)
def update_interface(self): self.table = tablewidget.TableWidget(self.shemetype, "sections") self.table.addColumn("xstrt", "str", "X0", hint="N0") self.table.addColumn("ystrt", "str", "Y0", hint="N0") self.table.addColumn("lsharn", "list", "ШарнирЛ", variant=self.sharnir_arr, hint="N0") self.table.addColumn("xfini", "str", "X1", hint="N1") self.table.addColumn("yfini", "str", "Y1", hint="N1") self.table.addColumn("rsharn", "list", "ШарнирП", variant=self.sharnir_arr, hint="N1") self.table.addColumn("txt", "str", "Текст", hint="S") self.table.addColumn("alttxt", "bool", "alt", hint="S") self.table.updateTable() self.table1 = tablewidget.TableWidget(self.shemetype, "sectforce") self.table1.addColumn("distrib", "list", "Распред. нагрузка", variant=["clean", "+", "-"], hint="S") self.table1.addColumn("txt", "str", "Текст q.", hint="S") self.table1.updateTable() self.table2 = tablewidget.TableWidget(self.shemetype, "betsect") self.table2.addColumn("fenl", "list", "0:Сила", variant=self.fen_arr, hint="N0") self.table2.addColumn("fl_txt", "str", "0:Т.F", hint="N0") self.table2.addColumn("menl", "list", "0:Момент", variant=self.men_arr, hint="N0") self.table2.addColumn("ml_txt", "str", "0:Т.M", hint="N0") self.table2.addColumn("fr_txt_alt", "bool", "0:Alt", hint="N0") self.table2.addColumn("fenr", "list", "1:Сила", variant=self.fen_arr, hint="N1") self.table2.addColumn("fr_txt", "str", "1:Т.F", hint="N1") self.table2.addColumn("menr", "list", "1:Момент", variant=self.men_arr, hint="N1") self.table2.addColumn("mr_txt", "str", "1:Т.M", hint="N1") self.table2.addColumn("fr_txt_alt", "bool", "1:Alt", hint="N1") self.table2.updateTable() self.table3 = tablewidget.TableWidget(self.shemetype, "label") self.table3.addColumn("smaker", "str", "0: Метка", hint="N0") self.table3.addColumn("smaker_pos", "list", "0: Метка", variant=elements.storoni, hint="N0") self.table3.addColumn("fmaker", "str", "1: Метка", hint="N1") self.table3.addColumn("fmaker_pos", "list", "1: Метка", variant=elements.storoni, hint="N1") self.table3.updateTable() self.table.hover_hint.connect(self.hover_node) self.table1.hover_hint.connect(self.hover_node) self.table2.hover_hint.connect(self.hover_node) self.table3.hover_hint.connect(self.hover_node) self.table.unhover.connect(self.table_unhover) self.table1.unhover.connect(self.table_unhover) self.table2.unhover.connect(self.table_unhover) self.table3.unhover.connect(self.table_unhover) self.vlayout.addWidget(QLabel("Геометрия и текст:")) self.vlayout.addWidget(self.table) self.vlayout.addWidget(QLabel("Распределённые силы:")) self.vlayout.addWidget(self.table1) self.vlayout.addWidget(QLabel("Локальные силы:")) self.vlayout.addWidget(self.table2) self.vlayout.addWidget(QLabel("Метки:")) self.vlayout.addWidget(self.table3) self.vlayout.addWidget(self.sett) self.table.updated.connect(self.redraw) self.table1.updated.connect(self.redraw) self.table2.updated.connect(self.redraw) self.table3.updated.connect(self.redraw) self.vlayout.addWidget(self.shemetype.texteditor)
def update_interface(self): SUBTYPE = self.shemetype.task_subtype.get() self.table1 = tablewidget.TableWidget(self.shemetype, "sectforce") self.table2 = tablewidget.TableWidget(self.shemetype, "betsect") self.table = tablewidget.TableWidget(self.shemetype, "sections") if SUBTYPE == SUBTYPE_RASTYAZHENIE_SJATIE: self.table.addColumn("A", "float", "Площадь") if SUBTYPE == SUBTYPE_KRUCHENIE_1: self.table.addColumn("GIk", "float", "КрутЖестк") if SUBTYPE == SUBTYPE_KRUCHENIE_2: self.table.addColumn("d", "float", "Диаметр") self.table.addColumn("dtext", "str", "Д.Текст") self.table.addColumn("l", "float", "Длина") if SUBTYPE == SUBTYPE_RASTYAZHENIE_SJATIE: self.table.addColumn("E", "float", "МодульЮнга") self.table.addColumn("text", "str", "Текст") self.table.addColumn("label", "str", "Метка") if SUBTYPE == SUBTYPE_RASTYAZHENIE_SJATIE: self.table.addColumn("delta", "bool", "Зазор") self.table.updateTable() self.table1 = tablewidget.TableWidget(self.shemetype, "sectforce") if SUBTYPE == SUBTYPE_RASTYAZHENIE_SJATIE: self.table1.addColumn("Fr", "list", variant=["нет", "+", "-"]) if SUBTYPE == SUBTYPE_KRUCHENIE_1 or \ SUBTYPE == SUBTYPE_KRUCHENIE_2: self.table1.addColumn("mkr", "list", variant=["нет", "+", "-"]) self.table1.addColumn("mkrT", "str", "Текст") self.table1.updateTable() self.table2 = tablewidget.TableWidget(self.shemetype, "betsect") if SUBTYPE == SUBTYPE_RASTYAZHENIE_SJATIE: self.table2.addColumn("F", "list", variant=["нет", "+", "-"]) self.table2.addColumn("Fstyle", "list", "Рис.", variant=["от узла", "к узлу", "выносн."]) if SUBTYPE == SUBTYPE_KRUCHENIE_1 or \ SUBTYPE == SUBTYPE_KRUCHENIE_2: self.table2.addColumn("Mkr", "list", variant=["нет", "+", "-"]) self.table2.addColumn("T", "str", "Текст") self.table2.addColumn("label", "str", "Метка") self.table2.addColumn( "label_off", "list", "МеткаПолож.", variant=["справа", "справа-сверху", "слева-снизу"]) self.table2.updateTable() self.table.updated.connect(self.redraw) self.table1.updated.connect(self.redraw) self.table2.updated.connect(self.redraw) self.table.hover_hint.connect(self.hover_sect) self.table1.hover_hint.connect(self.hover_sect) self.table2.hover_hint.connect(self.hover_node) self.table.unhover.connect(self.table_unhover) self.table1.unhover.connect(self.table_unhover) self.table2.unhover.connect(self.table_unhover) self.vlayout.addWidget(self.presett) self.add_buttons_to_layout(self.vlayout) self.vlayout.addWidget(QLabel("Геометрия:")) self.vlayout.addWidget(self.table) self.vlayout.addWidget(QLabel("Распределенные силы:")) self.vlayout.addWidget(self.table1) self.vlayout.addWidget(QLabel("Локальные силы, метки узлов:")) self.vlayout.addWidget(self.table2) self.vlayout.addWidget(self.sett) self.vlayout.addWidget(self.shemetype.texteditor)
def _show_stats_after_step1(self): logger.debug("show stats after step1 begin ") to_rename = { "length": "length [mm]", "volume": "volume [mm^3]", "surface": "surface [mm^2]", "radius": "radius [mm]" } to_rename_density = { "length": "length d. [mm^-2]", "volume": "volume d. []", "surface": "surface d. [mm^-1]" # "radius": "radius [mm^-2]" } # to_rename_density = { # "length": "length [mm]", # "volume": "volume [mm^3]", # "surface": "surface [mm^2]" # # "radius": "radius [mm^-2]" # } run_number_alpha = chr(ord("A") + self.run_number) if self.ui_stats_shown: # self._wg_tab_describe.deleteLater() # self._wg_tab_describe = None # self._wg_tab_merne.deleteLater() # self._wg_tab_merne = None pass else: self.stats_tab_wg = QTabWidget() self.mainLayout.addWidget(self.stats_tab_wg, 0, 3, 6, 2) self.actual_subtab_wg = QTabWidget() self.stats_tab_wg.addTab(self.actual_subtab_wg, '' + run_number_alpha) logger.debug("initiating canvas for graphs") if True: self.figure = plt.figure() self.canvas = FigureCanvas(self.figure) # self.toolbar = NavigationToolbar(self.canvas, self) self.actual_subtab_wg.addTab(self.canvas, 'Graphs ' + run_number_alpha) # df = self.teigen.gen.getStats() df = self.teigen.dataframes["elements"] plt.subplot(141) df[["length"]].rename(columns=to_rename).boxplot(return_type='axes') plt.subplot(142) df[['radius']].rename(columns=to_rename).boxplot(return_type='axes') plt.subplot(143) df[["surface"]].rename(columns=to_rename).boxplot(return_type='axes') plt.subplot(144) df[["volume"]].rename(columns=to_rename).boxplot(return_type='axes') self.figure.tight_layout() import tablewidget # dfmernef.insert(0, "", dfmernef.index) # import ipdb; ipdb.set_trace() # TODO take care about redrawing # self.stats_tab_wg.addTab(self._wg_tab_merne, "Density table") logger.debug("tabs initiatization") dfdescribe = self.teigen.dataframes["describe"] dfmerne = self.teigen.dataframes["density"] dfoverall = self.teigen.dataframes["overall"] self._wg_tab_describe = tablewidget.TableWidget(self, dataframe=dfdescribe) self._wg_tab_merne = tablewidget.TableWidget(self, dataframe=dfmerne) self._wg_tab_overall = tablewidget.TableWidget(self, dataframe=dfoverall) self._wg_tab_describe.setMinimumWidth(800) self._wg_tab_describe.setMinimumHeight(200) self._wg_tab_merne.setMaximumHeight(80) self._wg_tab_overall.setMaximumHeight(80) # TODO move to main column window self._wg_btn_tab_save = QPushButton("Save in one row", self) self._wg_btn_tab_save.setToolTip("Save all data in one row") self._wg_btn_tab_save.clicked.connect(self.btn_save_in_one_row) self._wg_tables = QtGui.QWidget() self._wg_tables.setLayout(QGridLayout()) self._wg_tables.layout().addWidget(self._wg_tab_describe) self._wg_tables.layout().addWidget(self._wg_tab_merne) self._wg_tables.layout().addWidget(self._wg_tab_overall) self._wg_tables.layout().addWidget(self._wg_btn_tab_save) self._wg_tab_describe.show() self._wg_tab_describe.raise_() # self.mainLayout.addWidget(self._wg_tab_describe, 0, 2, 5, 2) # self.stats_tab_wg.addTab(self._wg_tab_describe, "Stats table") self.actual_subtab_wg.addTab(self._wg_tables, "Summary " + run_number_alpha) # self.resize(600,700) logger.debug("poly data visualization init") if self.teigen.polydata_volume is not None and self.teigen.config[ CKEY_APPEARANCE]["surface_3d_preview"]: import imtools.show_segmentation_qt logger.debug("segmentation widget loading") # test code fn = op.expanduser("~/lisa_data/sample_data/liver-seg001.mhd"), # datap = io3d.read(fn, dataplus_format=True) import imtools.sample_data datap = imtools.sample_data.donut() segmentation = datap['segmentation'] voxelsize_mm = datap['voxelsize_mm'] self._wg_show_3d = imtools.show_segmentation_qt.ShowSegmentationWidget( # datap["segmentation"], # show_load_button=True ) QtGui.QApplication.processEvents() logger.debug("read polydata") # TODO use again - unstability is not here # this ted to be unstable # self._wg_show_3d.add_vtk_polydata(self.teigen.polydata_volume) # so we are using file way temp_vtk_file = op.expanduser(self.teigen.temp_vtk_file) self.teigen.save_surface_to_file(temp_vtk_file) self._wg_show_3d.add_vtk_file(temp_vtk_file) # test codee # self._wg_show_3d.add_ logger.debug("init new tab") self.actual_subtab_wg.addTab(self._wg_show_3d, "Visualization " + run_number_alpha) else: self._wg_show_3d = None self.ui_stats_shown = True logger.debug("noise preview init") if (self.teigen.config[CKEY_APPEARANCE]["noise_preview"] and self.teigen.config["postprocessing"]["add_noise"]): self._noise_figure = plt.figure() self._noise_canvas = FigureCanvas(self._noise_figure) # self.toolbar = NavigationToolbar(self.canvas, self) self.actual_subtab_wg.addTab(self._noise_canvas, 'Noise ' + run_number_alpha) noise = self.teigen.generate_noise() plt.imshow(noise[0, :, :], cmap="gray") plt.colorbar() logger.debug("show potential output path") self._ui_show_potential_output_path()