PyQt5开发搞定参数代入表格计算

为解决TableView内部的表格计算功能,让自己填写/修改的公式与数字能直接像Excel一样进行计算,今天搞了一天。终于实现这项功能。

参数的代入功能:

主要实现的参数为:exec(i),即是将所有参数进行一次公式化转计算
all_parameter = re.sub('\'', '_1', all_parameter)
list_all_parameter = re.split('\n', all_parameter)
print(list_all_parameter)#得到一个列表
for i in list_all_parameter:
    try:
        exec(i)  # 列表内所有计算参数在这里实现赋值
    except:
        print('公式参数无法转化')
        return

参数存入内存以后,即开始进行表内数据的eval(i)

row_n = self.widget_child_insertData_model.rowCount()
# 刷新计算结果:
for i in range(row_n):
try:
result_01 = round(eval(str(self.widget_child_insertData_model.index(i, 4).data())), 8)
result_01 = QStandardItem(str(result_01))
self.widget_child_insertData_model.setItem(i, 6, result_01)
result_02 = round(eval(str(self.widget_child_insertData_model.index(i, 5).data())), 8)
result_02 = QStandardItem(str(result_02))
self.widget_child_insertData_model.setItem(i, 7, result_02)
except:
self.widget_child_insertData_model.setItem(i, 6, QStandardItem('Null'))
self.widget_child_insertData_model.setItem(i, 7, QStandardItem('Null'))
self.insertData_color_the_wrongData(i, 6, self.widget_child_insertData_table)
self.insertData_color_the_wrongData(i, 7, self.widget_child_insertData_table)

多次将数据进行:

str转字符串化—->eval转计算化—->round转两位数值化—–>QStandardItem化,最后载入到model当中,大功告成!

近几日已经将右键菜单全部功能搞定:

最后只差一个“复制”,“粘帖”与Excel进行交互了。

最近开发上了头,得缓,得缓。不然身体搞不住。