Example #1
0
    def P_tab_check_btn_click(self, row):
        # 判断文字
        if self.P_table_widget_list[row]["check_btn"].text() == "修改":
            self.P_table_widget_list[row]["check_btn"].setText("保存")
            self.P_tab_set_enabled_true(row)
        else:
            self.P_table_widget_list[row]["check_btn"].setText("稍等")
            #取出值
            class_id = getKeyByValue(
                self.channelDict["personClass"], self.P_table_widget_list[row]
                ["person_clz_combox"].currentText())
            dorm = getKeyByValue(
                self.channelDict["addr_dorm"], self.P_table_widget_list[row]
                ["person_dorm_combox"].currentText())
            grade = getKeyByValue(
                self.channelDict["addr_class"], self.P_table_widget_list[row]
                ["person_class_combox"].currentText())
            # 更新表
            # 判断图像是否更新
            if self.P_table_widget_list[row]["imageChange"]:  # 如果全部更新
                # 取出编码
                enc = self.P_table_widget_list[row]["imageEncode"]
                # 存入照片
                path = self.P_table_widget_list[row]["imagePath"]

                person = Person(
                    enc, self.P_table_widget_list[row]
                    ["person_name_lineEdit"].text(), class_id, path)
                person.id = int(
                    self.P_table_widget_list[row]["person_id_lineEdit"].text())
                self.PDI.updatePerson(person, int(dorm), int(grade))
                # 清空数据
                self.P_table_widget_list[row]["imageEncode"] = None
                self.P_table_widget_list[row]["imagePath"] = ""
                self.P_table_widget_list[row]["imageChange"] = False
                # 更新图片
                person_img = QImage(path)
                size = QSize(20, 20)
                self.P_table_widget_list[row]["imageLabel"].setPixmap(
                    QPixmap.fromImage(person_img.scaled(size)))
                # 实时更新人脸库
                self.channelDict["DataGetThreadContent"].append(
                    "updateFaceLib")
                self.channelDict["DataGetThreadEvent"].set()
            else:
                # 更新数据
                person = Person(
                    None, self.P_table_widget_list[row]
                    ["person_name_lineEdit"].text(), class_id, None)
                person.id = int(
                    self.P_table_widget_list[row]["person_id_lineEdit"].text())
                self.PDI.updatePerson(person, int(dorm), int(grade))

            self.P_table_widget_list[row]["check_btn"].setText("修改")
            self.P_tab_set_enabled_false(row)