想要输入来料数和良品数 不良自动出现 可以吗 要怎么实现?
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值,相加之后输出到界面上
如果做实时的话,会相对麻烦一些,要用到监听
我觉得问题可以简化为这样:既然来料数=不良品+良品
,只需要输入来料数
和不良品
,另外一个在代码里面相减操作就可得到,这样界面不需要不良品
这个输入框,因为它是冗余的,设计起来更合理。
给一个公式,在输入来料数或者良品时(数据改变时),执行公式不良品=来料数-良品