python excle 总数和变量的关系

问题遇到的现象和发生背景

img


来料数=不良品+良品

问题相关代码,请勿粘贴截图

想要输入来料数和良品数 不良自动出现 可以吗 要怎么实现?

运行结果及报错内容
    def pushButton_create(self):
        send_data1 = {}  # 创建字典
        send_data2 = {}
        send_data3 = {}
        send_data4 = {}  # 创建字典
        send_data1['data'] = self.ui.textEdit_name.toPlainText()+ "\r\n"# 数据等于lineEdit_name的值 简单文本用toPlainText()
        send_data2['data'] = self.ui.textEdit_come.toPlainText()+ "\r\n"   # 数据等于lineEdit_name的值 简单文本用toPlainText()
        send_data3['data'] = self.ui.textEdit_bl.toPlainText()+ "\r\n"   # 数据等于lineEdit_name的值 简单文本用toPlainText()
        send_data4['data'] = self.ui.textEdit_lp.toPlainText()+ "\r\n" # 数据等于lineEdit_name的值 简单文本用toPlainText()
        data = send_data1['data']+send_data2['data']+send_data3['data']+send_data4['data']
        print(data)
        xlname=os.path.join(os.path.expanduser('~'),"Desktop")+'\\批次管理.xlsx'#路径自适应
        workbook = openpyxl.Workbook()
        titles = [u'物料信息', u'来料数',u'次品', u'良品']
        worksheet=workbook.active
        worksheet.cell(1, 1).value=titles[0]
        worksheet.cell(1, 2).value=titles[1]
        worksheet.cell(1, 3).value=titles[2]
        worksheet.cell(1, 4).value=titles[3]
        workbook.save(xlname)
        workbook.close()
        workbook = openpyxl.load_workbook(xlname)
        worksheet=workbook.active
        rc=2
        tmp_c=int(send_data3['data'])
        tmp_l=int(send_data4['data'])
        tmp_c_c=1
        tmp_l_c=1
        for i in range(int(send_data2['data'])):
            tmp_flag=0
            now = datetime.now()
            date_time = now.strftime("%Y%m%d")
            if tmp_c_c<=tmp_c:
                worksheet.cell(rc, 3).value="MSCP"+date_time+ str(tmp_c_c).zfill(4)
                tmp_flag=1
                tmp_c_c+=1
            if tmp_l_c<=tmp_l:
                worksheet.cell(rc, 4).value="MSLP"+date_time+ str(tmp_l_c).zfill(4)
                tmp_flag=1
                tmp_l_c+=1
            if tmp_flag==0:
                break
            worksheet.cell(rc, 1).value=send_data1['data']
            worksheet.cell(rc, 2).value=send_data2['data']
            rc+=1
        workbook.save(xlname)
        workbook.close()

我的解答思路和尝试过的方法
我想要达到的结果

可以加个更新botton,输入不良和良品之后获取value值,相加之后输出到界面上
如果做实时的话,会相对麻烦一些,要用到监听

我觉得问题可以简化为这样:既然来料数=不良品+良品,只需要输入来料数不良品,另外一个在代码里面相减操作就可得到,这样界面不需要不良品这个输入框,因为它是冗余的,设计起来更合理。

给一个公式,在输入来料数或者良品时(数据改变时),执行公式不良品=来料数-良品