解决特定情况下导出方案文件名日期不对的问题
This commit is contained in:
@@ -93,10 +93,13 @@ class TParamLayout(QObject):
|
||||
return self.__layout
|
||||
|
||||
class Analysis(QWidget):
|
||||
data_recv_end_signal =pyqtSignal([list,list])
|
||||
calc_item_end_signal =pyqtSignal([list])
|
||||
def __init__(self,parent=None):
|
||||
super(Analysis,self).__init__(parent)
|
||||
self.setWindowTitle("检测数据分析")
|
||||
|
||||
self.calc_item_end_signal.connect(self.calc_item_end_slot)
|
||||
self.data_recv_end_signal.connect(self.data_recv_end_slot)
|
||||
self.__import_but = QPushButton("导入方案",self)
|
||||
self.__import_but.clicked.connect(self.import_but_clicked)
|
||||
self.__import_but.setGeometry(QRect(0,0,100,27))
|
||||
@@ -109,12 +112,46 @@ class Analysis(QWidget):
|
||||
self.__layout = QFormLayout()
|
||||
self.__layout.addRow(' ',self.__export_but)
|
||||
self.__items=[]
|
||||
def add_item(self,data_dict:dict):
|
||||
data=data_dict["data"]
|
||||
x=data_dict["x"]
|
||||
name=data_dict["name"]
|
||||
max=data_dict["max"]
|
||||
min=data_dict["min"]
|
||||
avg=data_dict["avg"]
|
||||
mid=data_dict["mid"]
|
||||
std=data_dict["std"]
|
||||
limit_max=data_dict["limit_max"]
|
||||
limit_min=data_dict["limit_min"]
|
||||
dat_count=data_dict["dat_count"]
|
||||
y=data_dict["y"]
|
||||
figure = QFigure(name)
|
||||
figure.lable("序号","数值")
|
||||
tplayout=TParamLayout()
|
||||
tplayout.add_item(name+":Max",str(max))
|
||||
tplayout.add_item(name+":Min",str(min))
|
||||
tplayout.add_item(name+":Avg",str(avg))
|
||||
tplayout.add_item(name+":Mid",str(mid))
|
||||
tplayout.add_item(name+":Std",str(std))
|
||||
tplayout.add_item(name+":LimitMax",str(limit_max))
|
||||
tplayout.add_item(name+":LimitMin",str(limit_min))
|
||||
self.__layout.addRow(figure.canvas(),tplayout.layout())
|
||||
figure.draw(range(len(data)),data,lable="原始值",limit_max=limit_max,limit_min=limit_min)
|
||||
figure.draw(dat_count,y,lable="权重")
|
||||
figure.save(self._save_path,str(self._item_index)+".")
|
||||
self.__items.append((figure,tplayout))
|
||||
self._item_index+=1
|
||||
def calc_item_end_slot(self,data:list):
|
||||
print("calc_item end.")
|
||||
widget=QWidget()
|
||||
widget.setGeometry(QRect(0,0,1200,20000))
|
||||
for i in data:
|
||||
self.add_item(i)
|
||||
widget.setLayout(self.__layout)
|
||||
self.__scroll.setWidget(widget)
|
||||
|
||||
def addItem(self,data,name:str,params:list()):
|
||||
def calc_item(self,data,name:str):
|
||||
length=len(data)
|
||||
if(length<1000):
|
||||
print("data length too less.")
|
||||
return
|
||||
# 排序,从小到大
|
||||
sort_list=np.sort(data)
|
||||
dat_count=np.bincount(data)
|
||||
@@ -139,42 +176,42 @@ class Analysis(QWidget):
|
||||
# limit_min=avg-3*std
|
||||
if(limit_min<0):
|
||||
limit_min=0
|
||||
figure = QFigure(name)
|
||||
figure.lable("序号","数值")
|
||||
tplayout=TParamLayout()
|
||||
for i in params:
|
||||
tplayout.add_item(i+":Max",str(max))
|
||||
tplayout.add_item(i+":Min",str(min))
|
||||
tplayout.add_item(i+":Avg",str(avg))
|
||||
tplayout.add_item(i+":Mid",str(mid))
|
||||
tplayout.add_item(i+":Std",str(std))
|
||||
tplayout.add_item(i+":LimitMax",str(limit_max))
|
||||
tplayout.add_item(i+":LimitMin",str(limit_min))
|
||||
self.__layout.addRow(figure.canvas(),tplayout.layout())
|
||||
figure.draw(range(len(data)),data,lable="原始值",limit_max=limit_max,limit_min=limit_min)
|
||||
x=range(length)
|
||||
y=np.add(range(len(dat_count)),min)
|
||||
figure.draw(dat_count,y,lable="权重")
|
||||
figure.save(self._save_path,str(self._item_index)+".")
|
||||
self.__items.append((figure,tplayout))
|
||||
self._item_index+=1
|
||||
dat_struct={"name":name,"max":max,"min":min,"avg":avg,"mid":mid,"std":std,"limit_max":limit_max,
|
||||
"limit_min":limit_min,"dat_count":dat_count,"y":y,"x":x,"data":data}
|
||||
# self.add_item_signal.emit(dat_struct)
|
||||
return dat_struct
|
||||
|
||||
# 连接的绘制的方法
|
||||
def import_but_clicked(self):
|
||||
self.sch_data=scheme_data.sch_data()
|
||||
self.__import_but.setEnabled(False)
|
||||
widget=QWidget()
|
||||
widget.setGeometry(QRect(0,0,1200,20000))
|
||||
self.titles,datas=self.sch_data.datas_sql()
|
||||
if(self.titles==None):
|
||||
self.__import_but.setEnabled(True)
|
||||
return
|
||||
self._item_index=0
|
||||
self.sch_data.select_scheme()
|
||||
self._save_path="file/"+self.sch_data.scheme_name.split('/')[-1].split('.')[0]
|
||||
print(self._save_path)
|
||||
for i in range(len(self.titles)):
|
||||
self.addItem(datas[i],self.titles[i],[self.titles[i]])
|
||||
widget.setLayout(self.__layout)
|
||||
self.__scroll.setWidget(widget)
|
||||
self.recv_data()
|
||||
def recv_data(self):
|
||||
self._item_index=0
|
||||
def recv_data_thread(sch_data:scheme_data.sch_data):
|
||||
titles,data,num=sch_data.datas_sql()
|
||||
print("recv data,len=",num)
|
||||
self.data_recv_end_signal.emit(titles,data)
|
||||
if(num<1000):
|
||||
print("data len too less.")
|
||||
return
|
||||
items_data=[]
|
||||
for i in range(len(titles)):
|
||||
a=self.calc_item(data[i],titles[i])
|
||||
items_data.append(a)
|
||||
self.calc_item_end_signal.emit(items_data)
|
||||
|
||||
t = threading.Thread(target=recv_data_thread, args=(self.sch_data,))
|
||||
t.start()
|
||||
def data_recv_end_slot(self,titles:list,data:list):
|
||||
self.titles=titles
|
||||
self.sql_data=data
|
||||
print("data recv end.")
|
||||
def export_but_clicked(self):
|
||||
ret_limit=[]
|
||||
for i,t in zip(self.__items,self.titles):
|
||||
|
Reference in New Issue
Block a user