示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
	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)
示例#5
0
    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)
示例#6
0
    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
示例#7
0
    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)
示例#8
0
    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)
示例#9
0
    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)
示例#10
0
    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)
示例#11
0
    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()