Jul-23-2021, 05:02 PM
import sys,os,re,time
import numpy as np
import PI_GUI_App_Map as pgam
import PI_GUI_Func as pgfunc
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtWidgets import QApplication, QMainWindow, QLineEdit, QMessageBox, QProgressDialog ,QWidget,QGridLayout,QPushButton,QLabel,QTextBrowser,QDesktopWidget,QProgressBar
from PyQt5.QtGui import *
from PyQt5 import QtCore
from PyQt5.QtCore import Qt, QThread, pyqtSignal
#———————————————GLOBAL VAR———————————————#
PATH='C:\\Users\\jy1u18\\OneDrive - University of Southampton\\secm\\PI-AUTOLAB\\count.txt'
'''———————————————————CLASS———————————————————'''
class appmap(pgam.Ui_Form,QThread):
#——————————————————————————————————#
def __init__(self,MainWindow,signal):
self.signal=signal
self.xlist=[]
self.ylist=[]
self.zlist=[]
self.setupUi(MainWindow)
self.main(MainWindow)
#——————————————————————————————————#
def main(self,MainWindow):
MainWindow.setWindowTitle('Approach Curve-Map')
self.lineEdit_xp.editingFinished.connect(
lambda: self.list_read(widget=self.lineEdit_xp,tlist=self.xlist))
self.lineEdit_yp.editingFinished.connect(
lambda: self.list_read(widget=self.lineEdit_yp,tlist=self.ylist))
self.lineEdit_zp.editingFinished.connect(
lambda: self.list_read(widget=self.lineEdit_zp,tlist=self.zlist))
self.lineEdit_xp.editingFinished.connect(self.Sample_Stat)
self.lineEdit_yp.editingFinished.connect(self.Sample_Stat)
self.lineEdit_zp.editingFinished.connect(self.Sample_Stat)
self.pushButton.clicked.connect(self.click)
self.pushButton_2.clicked.connect(self.Monitor_Thrd)
self.lineEdit_xp.setText('1,2')
self.lineEdit_yp.setText('1,2')
self.lineEdit_zp.setText('(0 8 2),(10 45 5),(50 90 10),(100 500 50),(600 2000 200)')
self.list_read(widget=self.lineEdit_xp,tlist=self.xlist)
self.list_read(widget=self.lineEdit_yp,tlist=self.ylist)
self.list_read(widget=self.lineEdit_zp,tlist=self.zlist)
self.Sample_Stat()
def click(self):
print('clicked')
#——————————————————————————————————#
def Sample_Stat(self):
try:
self.num2d=len(self.xlist) * len(self.ylist)
self.num3d=len(self.zlist)
for i in [len(self.xlist),len(self.ylist)]:
if i != 0:
self.num3d=self.num3d*i
self.lineEdit_total_2d.setText(str(self.num2d))
self.lineEdit_total_exp.setText(str(self.num3d))
except KeyboardInterrupt:
sys.exit(app.exec_())
# except Exception:
# pass
#——————————————————————————————————#
def Monitor_Thrd(self):
print('this func is called')
self.msgrunning=QProgressDialog()
self.msgrunning.setWindowTitle('Approach Curve experiment in progress...')
self.msgrunning.setLabelText('Approach Curve experiments running.\n'
'Do not close this or other window while running. \n This window will close upon finish.')
self.msgrunning.setCancelButton(None)
self.msgrunning.show()
self.mon_thrd=pgfunc.Monitor(self.xlist,self.ylist,self.zlist,self.num3d)
self.mon_thrd.setProgress.connect(self.msgrunning.setValue)
self.mon_thrd.exp_cmplt.connect(self.Signal_Ascent)
self.mon_thrd.start()
def Signal_Ascent(self,i):
self.signal.emit([2,i])
def list_read(self,widget,tlist,ty=int):
try:
string=widget.text()
res=[]
element=string.split(",")
sets=[]
num=[]
for ele in element:
if '(' in ele:
sets.append(ele)
else:
num.append(ty(ele))
res+=list(map(ty, num))
for i in sets:
numset=re.findall(r'[(](.*?)[)]', i)
rangepara=numset[0].split(' ')
rangepara=list(map(int, rangepara))
res+=np.arange(rangepara[0],rangepara[1]+1,rangepara[2]).tolist()
res.sort()
tlist[:]=res
except KeyboardInterrupt:
raise KeyboardInterrupt
except Exception:
self.errormsg=QMessageBox()
self.errormsg.setIcon(QMessageBox.Critical)
self.errormsg.setText('Potentially input error, please check your inputs')
self.errormsg.setStandardButtons(QMessageBox.Ok)
self.errormsg.setWindowTitle('Error')
self.errormsg.show()
if __name__=='__main__':
os.system('python -m PyQt5.uic.pyuic PI_GUI_App_Map.ui -o PI_GUI_App_Map.py')
app = QApplication(sys.argv)
win=QWidget()
move_request=pyqtSignal(list)
ui=appmap(win,move_request)
win.show()
sys.exit(app.exec_())I have no idea why the buttons are not working. I think they were working yesterday
