class mywindow(QtWidgets.QMainWindow): def __init__(self): super(mywindow, self).__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.setWindowTitle("Converter") self.ui.pushButton.clicked.connect(self.btnClicked) self.ui.comboBox.addItem("Рублей") self.ui.comboBox.addItem("Долларов") self.ui.comboBox_2.addItem("Долларов") self.ui.comboBox_2.addItem("Рублей") self.textbox = self.ui.lineEdit self.combobox1 = self.ui.comboBox self.combobox2 = self.ui.comboBox_2 def btnClicked(self): textboxValue = int(self.textbox.text()) comboboxValue1 = self.combobox1.currentText() comboboxValue2 = self.combobox2.currentText() if comboboxValue1 == "Рублей" and comboboxValue2 == "Долларов": self.ui.lineEdit_2.setText(str(textboxValue / 74.35)) if comboboxValue1 == "Долларов" and comboboxValue2 == "Рублей": self.ui.lineEdit_2.setText(str(textboxValue * 74.35))
def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.pushButton_2.clicked.connect(self.openPic) self.ui.pushButton_6.clicked.connect(self.esLink) self.ui.pushButton_4.clicked.connect(self.showslectedPic) self.ui.pushButton_5.clicked.connect(self.showPicresult) self.ui.checkBox.clicked.connect(self.checkBoxSlection) self.ui.checkBox_2.clicked.connect(self.checkBoxSlection) self.ui.checkBox_3.clicked.connect(self.checkBoxSlection) self.ui.checkBox_4.clicked.connect(self.checkBoxSlection) self.ui.checkBox_5.clicked.connect(self.checkBoxSlection) self.ui.checkBox_6.clicked.connect(self.checkBoxSlection) self.ui.pushButton_3.clicked.connect(self.uploadPic) self.tempList = [ self.ui.checkBox, self.ui.checkBox_2, self.ui.checkBox_3, self.ui.checkBox_4, self.ui.checkBox_5, self.ui.checkBox_6 ] self.checkSlectedFlage = 0 self.detectObjection = '' self.picName = '' self.address = ['', 8000] self.address[0] = self.ui.lineEdit.text() self.picUploadThread = picUploadThread() self.picUploadThread.startWaitRePicFla.connect(self.openWaitTimer) self.waitPicThread = waitPicThread(address=tuple(self.address), Obj=self.ui.textBrowser) self.waitPicThread.findPicSignal.connect(self.FindPicture)
def __init__(self): super(XXX, self).__init__() Ui_MainWindow.__init__(self) self.setupUi(self) self.textEdit.textChanged.connect(self.show_text) self.pushButton.clicked.connect(self.file) # 下面将输出重定向到textBrowser中 sys.stdout = EmittingStr(textWritten=self.outputWritten) sys.stderr = EmittingStr(textWritten=self.outputWritten)
def __init__(self, *args, obj=None, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.ui=Ui_MainWindow() self.ui.setupUi(self) self.threadpool=QThreadPool() self.threadHandle(self.looper) #self.ui.pushButton.clicked.connect(self.loopHandle) self.ui.pushButton.clicked.connect(lambda v: self.threadHandle(self.looper)) self.ui.pushButton_2.clicked.connect(lambda v: self.threadHandle(self.scan))
class App(QMainWindow): def __init__(self, parent=None): super(App, self).__init__(parent) self.download_path = "" self.zip = 0 self.rar = 0 self.z7 = 0 self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.pushButton.clicked.connect(self.start_click) self.ui.pushButton_2.clicked.connect(qApp.quit) self.ui.pushButton_3.clicked.connect(self.browse_click) self.ui.checkBox.stateChanged.connect(self.file_extension) self.ui.checkBox_2.stateChanged.connect(self.file_extension) self.ui.checkBox_3.stateChanged.connect(self.file_extension) def start_click(self): if self.download_path != "": main = MainScript() main.main(self.download_path, self.zip, self.rar, self.z7) dlg = Dialog() dlg.dialog_change("Processing completed") dlg.show() dlg.exec_() else: dlg = Dialog() dlg.dialog_change("Please specify the download folder path") dlg.show() dlg.exec_() def browse_click(self): path = str(QFileDialog.getExistingDirectory(self, "Select Directory")) self.ui.lineEdit.setText(path) self.download_path = self.ui.lineEdit.text() def file_extension(self): if self.ui.checkBox.isChecked(): self.zip = 1 else: self.zip = 0 if self.ui.checkBox_2.isChecked(): self.rar = 1 else: self.rar = 0 if self.ui.checkBox_3.isChecked(): self.z7 = 1 else: self.z7 = 0
def __init__(self): super(mywindow, self).__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.setWindowTitle("Temperature") self.ui.pushButton.clicked.connect(self.btnClicked) self.first = self.ui.lineEdit self.second = self.ui.lineEdit_2 self.third = self.ui.lineEdit_3 self.fourth = self.ui.lineEdit_4 self.fifth = self.ui.lineEdit_5
def __init__(self): super(mywindow, self).__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.setWindowTitle("Converter") self.ui.pushButton.clicked.connect(self.btnClicked) self.ui.comboBox.addItem("Рублей") self.ui.comboBox.addItem("Долларов") self.ui.comboBox_2.addItem("Долларов") self.ui.comboBox_2.addItem("Рублей") self.textbox = self.ui.lineEdit self.combobox1 = self.ui.comboBox self.combobox2 = self.ui.comboBox_2
def __init__(self, parent=None): super(App, self).__init__(parent) self.download_path = "" self.zip = 0 self.rar = 0 self.z7 = 0 self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.pushButton.clicked.connect(self.start_click) self.ui.pushButton_2.clicked.connect(qApp.quit) self.ui.pushButton_3.clicked.connect(self.browse_click) self.ui.checkBox.stateChanged.connect(self.file_extension) self.ui.checkBox_2.stateChanged.connect(self.file_extension) self.ui.checkBox_3.stateChanged.connect(self.file_extension)
def __init__(self, parent=None): super(MyForm, self).__init__(parent) QtGui.QWidget.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) QtCore.QObject.connect(self.ui.connectbut, QtCore.SIGNAL('clicked()'), self.connectarduino) self.ui.ctrl_MAX.toggled.connect(self.maxtoggle) self.ser = None #declare arduino #create a pyqtgraph for plotting self.p = pg.plot() self.p.setWindowTitle('live plot from serial') self.p.addLegend() self.p.setTitle('Python-Arduino Temp Controller') self.p.setLabel('bottom', text='Time', units='s') self.p.setLabel('left', text='Temp', units='oC') self.curve_max = self.p.plot(pen='r', name='MAX31855') self.curve_ds = self.p.plot(pen='g', name='DS18B20') #self.curve_mlx = self.p.plot(pen='b', name='MLX90614') #to do add a line for setpoint self.data_max = [] self.data_ds = [] self.data_mlx = [] self.data_time = [] self.timer = QtCore.QTimer(self) QtCore.QObject.connect(self.timer, QtCore.SIGNAL('timeout()'), self.updategraph) #declare factor of ctrl cmd self.ctrlsys = 'a' self.ctrlstate = '0' self.ctrltune = '0' self.ctrlsetpoint = 0.00 self.ctrlkp = 0.00 self.ctrlti = 0.00 self.ctrltd = 0.00 self.ctrlcmd = "a,0,0,0,0,0,0," #declare factors for autotune self.t0temp = 0 self.t0 = 0 self.t1temp = 0 self.t1 = 0 self.t2temp = 0 self.t2 = 0 #declare for xml self.xml_root = None
class MainWindow(QMainWindow,Ui_MainWindow): def __init__(self, *args, obj=None, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.ui=Ui_MainWindow() self.ui.setupUi(self) self.threadpool=QThreadPool() self.threadHandle(self.looper) #self.ui.pushButton.clicked.connect(self.loopHandle) self.ui.pushButton.clicked.connect(lambda v: self.threadHandle(self.looper)) self.ui.pushButton_2.clicked.connect(lambda v: self.threadHandle(self.scan)) def scan(self): cmd=os.popen("timeout -s INT 10s hcitool lescan") print(cmd.read()) def scanHandle(self): worker=Worker(self.scan) self.threadpool.start(worker) def threadHandle(self,fun): worker=Worker(fun) self.threadpool.start(worker) worker.signals.finished.connect(self.finished) def loopHandle(self): worker=Worker(self.looper) worker.signals.finished.connect(self.finished) self.threadpool.start(worker) def finished(self): print("Done!!!!!!!!!!!!!") def looper(self): count=0 while count!=100: print("Hello" + str(self.threadpool.activeThreadCount())) count+=1 time.sleep(0.1)
class mywindow(QtWidgets.QMainWindow): def __init__(self): super(mywindow, self).__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.setWindowTitle("Run") self.ui.pushButton.clicked.connect(self.btnClicked) self.firstday = self.ui.lineEdit self.secondday = self.ui.lineEdit_2 self.thirdday = self.ui.lineEdit_3 self.fourthday = self.ui.lineEdit_4 self.fifthday = self.ui.lineEdit_5 def btnClicked(self): firstday = int(self.firstday.text()) secondday = int(self.secondday.text()) thirdday = int(self.thirdday.text()) fourthday = int(self.fourthday.text()) fifthday = int(self.fifthday.text()) days = [firstday, secondday, thirdday, fourthday, fifthday] allrun = firstday + secondday + thirdday + fourthday + fifthday amountrun = allrun / 5 minrun = days[0] for i in range(0, 5): if minrun > days[i]: minrun = days[i] maxrun = days[0] for i in range(0, 5): if maxrun < days[i]: maxrun = days[i] self.ui.lineEdit_6.setText(str(allrun)) self.ui.lineEdit_7.setText(str(amountrun)) self.ui.lineEdit_8.setText(str(minrun)) self.ui.lineEdit_9.setText(str(maxrun))
def __init__(self): super(MyUI, self).__init__() self.ui = Ui_MainWindow() self.setupUi(self) sleep(1) self.pushButton.clicked.connect(self.get_Save_Path) self.pushButton_2.clicked.connect(self.get_URL) self.pushButton_3.clicked.connect(self.Start) self.pushButton_4.clicked.connect(self.About) self.pushButton_5.clicked.connect(self.Stop)
def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.nn = captcha.Net() QtCore.QObject.connect(self.ui.toolButtonBuscarCarpeta, QtCore.SIGNAL("clicked()"), self.folder_dialog) QtCore.QObject.connect(self.ui.toolButtonEntrenar,QtCore.SIGNAL("clicked()"), self.train) QtCore.QObject.connect(self.ui.toolButtonBuscarArchivo,QtCore.SIGNAL("clicked()"), self.file_dialog) QtCore.QObject.connect(self.ui.toolButtonCargar, QtCore.SIGNAL("clicked()"), self.show_captcha) QtCore.QObject.connect(self.ui.toolButtonDescifrar, QtCore.SIGNAL("clicked()"), self.process) QtCore.QObject.connect(self.ui.toolButtonModificar, QtCore.SIGNAL("clicked()"), self.modify) QtCore.QObject.connect(self.ui.pushButtonSalir, QtCore.SIGNAL("clicked()"), self.salir)
def __init__(self): super(mywindow, self).__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.setWindowTitle("Calculator") self.ui.pushButton.clicked.connect(self.btnClicked_1) self.ui.pushButton_2.clicked.connect(self.btnClicked_2) self.ui.pushButton_3.clicked.connect(self.btnClicked_3) self.ui.pushButton_4.clicked.connect(self.btnClicked_4) self.ui.pushButton_5.clicked.connect(self.btnClicked_5) self.ui.pushButton_6.clicked.connect(self.btnClicked_6) self.ui.pushButton_7.clicked.connect(self.btnClicked_7) self.ui.pushButton_8.clicked.connect(self.btnClicked_8) self.ui.pushButton_9.clicked.connect(self.btnClicked_9) self.ui.pushButton_10.clicked.connect(self.btnClicked_10) self.ui.pushButton_11.clicked.connect(self.btnClicked_11) self.ui.pushButton_12.clicked.connect(self.btnClicked_12) self.ui.pushButton_13.clicked.connect(self.btnClicked_13) self.ui.pushButton_14.clicked.connect(self.btnClicked_14) self.ui.pushButton_15.clicked.connect(self.btnClicked_15) self.ui.pushButton_16.clicked.connect(self.btnClicked_16) self.ui.pushButton_17.clicked.connect(self.btnClicked_17)
def __init__(self, MainWindow): super().__init__(MainWindow) self.UI_obj = Ui_MainWindow() self.UI_obj.setupUi(MainWindow) self.color_dict = {'Blue': (0, 0, 255), 'Red': (255, 0, 0), 'Orange': (255, 127, 25)} self.UI_obj.fullimg = PainterLabel(5) self.UI_obj.fullimg.setAlignment(QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) self.UI_obj.patch_group = {} self.UI_obj.HR_group = {} self.UI_obj.set_root.clicked.connect(self.setRoot) self.UI_obj.show_Fullimg.clicked.connect(self.show_Full_img) self.UI_obj.set_Saveroot_bt.clicked.connect(self.setSave) self.UI_obj.crop_viewbt.clicked.connect(self.cropView) self.UI_obj.save_finalbt.clicked.connect(self.saveAll_results) self.UI_obj.patchTab.currentChanged['int'].connect(self.add_Tab) self.UI_obj.tab_1 = QtWidgets.QScrollArea(self.UI_obj.patchTab) self.UI_obj.tab_2 = QtWidgets.QScrollArea(self.UI_obj.patchTab) self.UI_obj.patchTab.addTab(self.UI_obj.tab_1, 'Patch Group 1') self.UI_obj.patchTab.addTab(self.UI_obj.tab_2, '+') self.UI_obj.fullimg.installEventFilter(self) self.UI_obj.patchTab.installEventFilter(self) self.UI_obj.fullimg.drawRecFlag = False self.UI_obj.sub_dir_list.activated[str].connect(self.onActivated)
class mywindow(QtWidgets.QMainWindow): def __init__(self): super(mywindow, self).__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.setWindowTitle("Temperature") self.ui.pushButton.clicked.connect(self.btnClicked) self.first = self.ui.lineEdit self.second = self.ui.lineEdit_2 self.third = self.ui.lineEdit_3 self.fourth = self.ui.lineEdit_4 self.fifth = self.ui.lineEdit_5 def btnClicked(self): first = int(self.first.text()) second = int(self.second.text()) third = int(self.third.text()) fourth = int(self.fourth.text()) fifth = int(self.fifth.text()) amount = (first + second + third + fourth + fifth) / 5 self.ui.lineEdit_6.setText(str(amount))
def __init__(self): super(mywindow, self).__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self)
class mywindow(QtWidgets.QMainWindow): def __init__(self): super(mywindow, self).__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self)
from PyQt5 import QtCore, QtGui, QtWidgets from untitled import Ui_MainWindow import sys if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) window = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(window) ui.retranslateUi(window) window.showMaximized() try: sys.exit(app.exec_()) except: print("exiting") sys.exit(1)
self.pushButton_13.setText("") self.pushButton_13.setObjectName("pushButton_13") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) class Durdom(Ui_MainWindow): def __init__(self): super().__init__() self.setupUi(self) if __name__ == '__main__': app = QApplication(sys.argv) ex = Ui_MainWindow() # Durdom() ex.show() sys.exit(app.exec())
class MyForm(QtGui.QMainWindow): def __init__(self, parent=None): super(MyForm, self).__init__(parent) QtGui.QWidget.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) QtCore.QObject.connect(self.ui.connectbut, QtCore.SIGNAL('clicked()'), self.connectarduino) self.ui.ctrl_MAX.toggled.connect(self.maxtoggle) self.ser = None #declare arduino #create a pyqtgraph for plotting self.p = pg.plot() self.p.setWindowTitle('live plot from serial') self.p.addLegend() self.p.setTitle('Python-Arduino Temp Controller') self.p.setLabel('bottom', text='Time', units='s') self.p.setLabel('left', text='Temp', units='oC') self.curve_max = self.p.plot(pen='r', name='MAX31855') self.curve_ds = self.p.plot(pen='g', name='DS18B20') #self.curve_mlx = self.p.plot(pen='b', name='MLX90614') #to do add a line for setpoint self.data_max = [] self.data_ds = [] self.data_mlx = [] self.data_time = [] self.timer = QtCore.QTimer(self) QtCore.QObject.connect(self.timer, QtCore.SIGNAL('timeout()'), self.updategraph) #declare factor of ctrl cmd self.ctrlsys = 'a' self.ctrlstate = '0' self.ctrltune = '0' self.ctrlsetpoint = 0.00 self.ctrlkp = 0.00 self.ctrlti = 0.00 self.ctrltd = 0.00 self.ctrlcmd = "a,0,0,0,0,0,0," #declare factors for autotune self.t0temp = 0 self.t0 = 0 self.t1temp = 0 self.t1 = 0 self.t2temp = 0 self.t2 = 0 #declare for xml self.xml_root = None @QtCore.pyqtSlot(bool) def maxtoggle(self, checked): if not checked: #send turn off on max pid to arduino try: self.ser.open() except: pass self.ctrlcmd = 'a,0,0' self.ser.write(self.ctrlcmd.encode()) self.timer.stop() self.cleargraph() #print "turn off MAx" elif checked: #send turn on to max pid to arduino try: self.ser.open() except: #print "already open" pass self.ctrlcmd = 'a,1,0,%s,%s,%s,%s' % ( str(self.ui.sp_MAX.value()), str(self.ui.MAX_kc.value()), str(self.ui.MAX_ti.value()), str(self.ui.MAX_td.value())) #print self.ctrlcmd #self.ctrlcmd = 'a,1,0,%s,%s,%s,%s' % (self.ui.sp_MAX.value(), self.ui.MAX_kc.value(), self.ui.MAX_ti.value(), self.ui.MAX_td.value()) self.ser.write(self.ctrlcmd.encode()) #start new plotting self.timer.stop() self.timer.start(100) #print "turn on MAX" def connectarduino(self): try: port = str(self.ui.comlisttext.toPlainText()) self.ser = serial.Serial(port, 9600) self.ui.connectbut.setText("Connected") self.ui.connectbut.setEnabled(False) self.ui.groupBox.setEnabled(True) self.ui.groupBox_2.setEnabled(True) self.timer.start(1000) except: print('failed') def updategraph(self): try: self.ser.open() except: #print "already open" pass #global curve_max, curve_dx, curve_mlx, data_max, data_ds, data_mlx, curve_time, data_time line = self.ser.readline().rstrip().split(",") #print line #update label in the gui self.ui.MAX_raw.setText(line[3]) maxtemp = float(line[3]) + self.ui.MAX_calib.value() self.ui.MAX_Temp.setText(str(maxtemp)) self.ui.ds_raw.setText(line[5]) dstemp = float(line[5]) + self.ui.ds_calib.value() self.ui.ds_Temp.setText(str(dstemp)) #plot the calibrated temperature self.data_time.append(float(line[1]) / 1000.0) self.data_max.append(maxtemp) self.data_ds.append(dstemp) #self.data_mlx.append(float(line[7])) ydata_time = np.array(self.data_time, dtype='float64') ydata_max = np.array(self.data_max, dtype='float64') ydata_ds = np.array(self.data_ds, dtype='float64') #ydata_mlx = np.array(self.data_mlx, dtype='float64') self.curve_max.setData(x=ydata_time, y=ydata_max) self.curve_ds.setData(x=ydata_time, y=ydata_ds)
class Window(QMainWindow): def __init__(self): super().__init__() self.ui=Ui_MainWindow() self.ui.setupUi(self) self.show() #les buttons de graph self.ui.pushButton_16.hide() #self.ui.pushButton_17.hide() self.ui.pushButton_17.clicked.connect(self.showgragh) #manuelle de utilasation 1 self.path = r"aide1.pdf" self.url = bytearray(QUrl().fromLocalFile(self.path).toEncoded()).decode() self.text = "<a href={}>></a>".format(self.url) self.ui.pushButton.setText(self.text+"?") self.ui.pushButton.setOpenExternalLinks(True) #manuelle de utilasation 2 self.path = r"aide2.pdf" self.url = bytearray(QUrl().fromLocalFile(self.path).toEncoded()).decode() self.text = "<a href={}>></a>".format(self.url) self.ui.pushButton_14.setText(self.text+"?") self.ui.pushButton_14.setOpenExternalLinks(True) #manuelle de utilasation 3 self.path = r"aide3.pdf" self.url = bytearray(QUrl().fromLocalFile(self.path).toEncoded()).decode() self.text = "<a href={}>></a>".format(self.url) self.ui.pushButton_15.setText(self.text+"?") self.ui.pushButton_15.setOpenExternalLinks(True) #griser les buttons self.ui.ValiderNbrAdn.setEnabled(False) self.ui.pushButton_7.setEnabled(False) self.ui.pushButton_13.setEnabled(False) self.ui.pushButton_2.setEnabled(False) self.ui.pushButton_3.setEnabled(False) self.ui.pushButton_4.setEnabled(False) self.ui.pushButton_5.setEnabled(False) self.ui.pushButton_6.setEnabled(False) self.ui.pushButton_8.setEnabled(False) self.ui.lineEdit.setPlaceholderText('#nuc') self.ui.lineEdit_2.setPlaceholderText('#sec') self.ui.listWidget_2.hide() # le button de sauvgarde du resultat self.ui.pushButton_9.clicked.connect(self.saveWindows) #les buttons des fonctions ARN self.btn_grp4= QButtonGroup() self.btn_grp4.setExclusive(True) self.btn_grp4.addButton(self.ui.pushButton_10) self.btn_grp4.addButton(self.ui.pushButton_11) self.btn_grp4.addButton(self.ui.pushButton_12) self.btn_grp4.buttonClicked.connect(self.FONCTIONS_ARN) #les buttons des fonctions ADN self.btn_grp3= QButtonGroup() self.btn_grp3.setExclusive(True) self.btn_grp3.addButton(self.ui.pushButton_13) self.btn_grp3.addButton(self.ui.pushButton_2) self.btn_grp3.addButton(self.ui.pushButton_3) self.btn_grp3.addButton(self.ui.pushButton_4) self.btn_grp3.addButton(self.ui.pushButton_5) self.btn_grp3.addButton(self.ui.pushButton_6) self.btn_grp3.addButton(self.ui.pushButton_8) self.btn_grp3.buttonClicked.connect(self.FONCTIONS_ADN) # les radio buttons un seul sequence plusius ADN self.btn_grpRADIO = QButtonGroup() self.btn_grpRADIO.setExclusive(True) self.btn_grpRADIO.addButton(self.ui.radioButton_4)# tts les sequences self.btn_grpRADIO.addButton(self.ui.radioButton_3)# un seule sequence self.btn_grpRADIO.buttonClicked.connect(self.RADIOSEQUENCE) #les botton de insertion de ADN self.btn_grp = QButtonGroup() self.btn_grp.setExclusive(True) self.btn_grp.addButton(self.ui.ValiderNbrAdn) self.btn_grp.addButton(self.ui.pushButton_7) self.btn_grp.buttonClicked.connect(self.ADN_ENTRIE) ########################### group de radio buttons self.btn_grp2 = QButtonGroup() self.btn_grp2.setExclusive(True) self.btn_grp2.addButton(self.ui.radioButton) self.btn_grp2.addButton(self.ui.radioButton_2) self.btn_grp2.buttonClicked.connect(self.RADION_ADN_ENTRIE) ##################################################################### # dialog de sauvgarde les resultats self.d = QDialog() self.d.setWindowTitle("Sauvgarde") self.d.resize(340, 400) self.d.setStyleSheet("background-color: #636363;") self.centralwidget = QWidget(self.d) self.centralwidget.setObjectName("centralwidget") self.groupBox_9 = QGroupBox(self.centralwidget) self.groupBox_9.setGeometry(QtCore.QRect(50, 80, 240, 231)) self.groupBox_9.setStyleSheet("QGroupBox \n""{\n""\n""color:#c2c2c2;\n""margin: 0em;\n"" border: 1px solid #c2c2c2; \n"" border-radius: 8px;\n""} \n""") self.groupBox_9.setTitle("") self.groupBox_9.setObjectName("groupBox_9") self.label_8 = QLabel(self.centralwidget) self.label_8.setGeometry(QtCore.QRect(70, 70, 81, 16)) self.label_8.setStyleSheet("font: 75 10pt \"Tw Cen MT\";\n""color:#c2c2c2;") self.label_8.setObjectName("label_8") self.save = QPushButton(self.centralwidget) self.save.setGeometry(QtCore.QRect(140, 320, 50, 23)) self.save.setStyleSheet("color:\"white\";\n""background-color:#d50000;") self.save.setObjectName("save") self.checkBox_2 = QCheckBox(self.centralwidget) self.checkBox_2.setGeometry(QtCore.QRect(90, 110, 151, 21)) self.checkBox_2.setStyleSheet("color:#c2c2c2;\n""font: 75 10pt \"Tw Cen MT\";") self.checkBox_2.setObjectName("checkBox_2") self.checkBox_3 = QCheckBox(self.centralwidget) self.checkBox_3.setGeometry(QtCore.QRect(90, 130, 151, 21)) self.checkBox_3.setStyleSheet("color:#c2c2c2;\n""font: 75 10pt \"Tw Cen MT\";") self.checkBox_3.setObjectName("checkBox_3") self.checkBox_4 = QCheckBox(self.centralwidget) self.checkBox_4.setGeometry(QtCore.QRect(90, 150, 151, 21)) self.checkBox_4.setStyleSheet("color:#c2c2c2;\n""font: 75 10pt \"Tw Cen MT\";") self.checkBox_4.setObjectName("checkBox_4") self.checkBox_5 = QCheckBox(self.centralwidget) self.checkBox_5.setGeometry(QtCore.QRect(90, 170, 151, 21)) self.checkBox_5.setStyleSheet("color:#c2c2c2;\n""font: 75 10pt \"Tw Cen MT\";") self.checkBox_5.setObjectName("checkBox_5") self.checkBox_6 = QCheckBox(self.centralwidget) self.checkBox_6.setGeometry(QtCore.QRect(90, 190, 151, 21)) self.checkBox_6.setStyleSheet("color:#c2c2c2;\n""font: 75 10pt \"Tw Cen MT\";") self.checkBox_6.setObjectName("checkBox_6") self.checkBox_7 = QCheckBox(self.centralwidget) self.checkBox_7.setGeometry(QtCore.QRect(90, 210, 191, 21)) self.checkBox_7.setStyleSheet("color:#c2c2c2;\n""font: 75 10pt \"Tw Cen MT\";") self.checkBox_7.setObjectName("checkBox_7") self.checkBox_8 = QCheckBox(self.centralwidget) self.checkBox_8.setGeometry(QtCore.QRect(90, 230, 191, 21)) self.checkBox_8.setStyleSheet("color:#c2c2c2;\n""font: 75 10pt \"Tw Cen MT\";") self.checkBox_8.setObjectName("checkBox_8") self.checkBox_9 = QCheckBox(self.centralwidget) self.checkBox_9.setGeometry(QtCore.QRect(90, 250, 191, 21)) self.checkBox_9.setStyleSheet("color:#c2c2c2;\n""font: 75 10pt \"Tw Cen MT\";") self.checkBox_9.setObjectName("checkBox_9") ###########les noms des widgets self.label_8.setText( "Sauvegrader:") self.save.setText( "Valider") self.checkBox_2.setText( "ADN Reverse") self.checkBox_3.setText( "Frequence Bn ADN") self.checkBox_4.setText( "Frequence codons") self.checkBox_5.setText( "%GC") self.checkBox_6.setText( " Sequences ARN") self.checkBox_7.setText( "Sequence ARN apres epissage") self.checkBox_8.setText( "Sequences proteique") self.checkBox_9.setText( "La masse protéique") self.save.clicked.connect(self.save_resultat) def showgragh(self): def delet_file(namefile): if os.path.isfile(namefile): os.remove(namefile) else: ## Show an error ## print("Error: %s file not found" % namefile) def write_result(result,nomfichier):#this methode is to creat a file that contain the result RFILE = open(nomfichier,'a') RFILE.write(result) RFILE.close() ######################pour designer plot if self.ui.textBrowser_7.toPlainText()!='': delet_file("nuc.txt") write_result(self.ui.textBrowser_7.toPlainText()+"\n","nuc.txt") write_result(self.ui.textBrowser_6.toPlainText()+"\n","nuc.txt") write_result(self.ui.textBrowser_4.toPlainText()+"\n","nuc.txt") write_result(self.ui.textBrowser_5.toPlainText()+"\n","nuc.txt") self.canvas = Canvas(self, width=8, height=4) self.canvas.show() self.ui.pushButton_16.show() self.ui.pushButton_16.clicked.connect(self.hidegraph) def hidegraph(self): self.canvas.hide() ############################################################################ def saveWindows(self): self.d.exec_() # sauvgarder les resultats ############################################################################ def save_resultat(self): def write_result(result,nomfichier):#this methode is to creat a file that contain the result RFILE = open(nomfichier,'a') RFILE.write(result) RFILE.close() #adn inverse def date():# retourner la date now = datetime.datetime.now() return str(now.strftime("%Y-%m-%d %H:%M:%S")) write_result("la date :"+date()+"\n","fichier_resultat.txt") if self.ui.radioButton_4.isChecked()==True and self.ui.textBrowser_3.toPlainText()!='': write_result("Sequence ADN:"+self.ui.textBrowser_3.toPlainText()+"\n","fichier_resultat.txt") else: adn_resultTAB=self.ui.textEdit.toPlainText().split("\n") adn_result=adn_resultTAB[0] write_result("Sequence ADN:"+adn_result+"\n","fichier_resultat.txt") pass if self.checkBox_2.isChecked(): if self.ui.textEdit_4.toPlainText()!='': write_result("ADN inverse : "+self.ui.textEdit_4.toPlainText()+"\n","fichier_resultat.txt")#adn inversse pass pass if self.checkBox_3.isChecked(): if self.ui.textBrowser_4.toPlainText()!='': write_result("Frequences des bases : \n","fichier_resultat.txt") write_result("G : "+self.ui.textBrowser_4.toPlainText()+"\n","fichier_resultat.txt")#G write_result("C : "+self.ui.textBrowser_5.toPlainText()+"\n","fichier_resultat.txt")#C write_result("A : "+self.ui.textBrowser_7.toPlainText()+"\n","fichier_resultat.txt")#A write_result("T : "+self.ui.textBrowser_6.toPlainText()+"\n","fichier_resultat.txt")#T pass pass if self.checkBox_4.isChecked(): if self.ui.textBrowser_2.toPlainText()!='': write_result("Frequence de L ADN codants est :"+self.ui.textBrowser_2.toPlainText()+"\n","fichier_resultat.txt")# Frequence codons pass pass if self.checkBox_5.isChecked(): if self.ui.textBrowser.toPlainText()!='': write_result("Taux de GC dans la sequence est :"+self.ui.textBrowser.toPlainText()+"\n","fichier_resultat.txt")#%GC pass pass if self.checkBox_6.isChecked(): if self.ui.textEdit_3.toPlainText()!='': write_result("Sequence de ARN est :"+self.ui.textEdit_3.toPlainText()+"\n","fichier_resultat.txt")#Sequences ARN pass pass if self.checkBox_7.isChecked(): if self.ui.textEdit_2.toPlainText()!='': write_result("Sequence ARN apres l'eppisage est: "+self.ui.textEdit_2.toPlainText()+"\n","fichier_resultat.txt")#Sequence ARN apres epissage pass pass if self.checkBox_8.isChecked(): if self.ui.textBrowser_9.toPlainText()!='': write_result("Sequence proteique est: "+self.ui.textBrowser_9.toPlainText(),"fichier_resultat.txt")#Sequences proteique pass pass if self.checkBox_9.isChecked(): if self.ui.textBrowser_8.toPlainText()!='': write_result("Masse proteique est: "+self.ui.textBrowser_8.toPlainText()+"\n","fichier_resultat.txt")#La masse protéique pass pass write_result("############################################################\n","fichier_resultat.txt") self.d.hide() ############################################################################ #################### les fonctions sur ARN ################################# def FONCTIONS_ARN(self,btn): # fonctions de read FASTA fichier def readFASTA(filename): with open(filename) as file: return (file.read().split('>')[1:]) def read_FASTA_entries(filename): return[seq.partition('\n')for seq in readFASTA(filename)] def final_FASTA(filename): return[seq[2].replace('\n','') for seq in read_FASTA_entries(filename)] ############################################################## dictionaire des acides aminnees acide_aminee_MASS_TABLE2 = { 'Ala': 71.03711, 'Cys': 103.00919, 'Asp': 115.02694, 'Glu': 129.04259, 'Phe': 147.06841, 'Gly': 57.02146, 'His': 137.05891, 'Ile': 113.08406, 'Lys': 128.09496, 'Leu': 113.08406, 'Met': 131.04049, 'Asn': 114.04293, 'Pro': 97.05276, 'Gln': 128.05858, 'Arg': 156.10111, 'Ser': 87.03203, 'Thr': 101.04768, 'Val': 99.06841, 'Trp': 186.07931, 'Tyr': 163.06333, 'Urp': 157.01035 } ###################################################################### le dictionaire des ARN codons RNA_codon_tabl={'UUU': 'Phe', 'UCU': 'Ser', 'UAU': 'Tyr', 'UGU': 'Cys' , 'UUC': 'Phe', 'UCC': 'Ser', 'UAC': 'Tyr', 'UGC': 'Cys' , 'UUA': 'Leu', 'UCA': 'Ser', 'UAA': '---', 'UGA': '---', 'UUG': 'Leu', 'UCG': 'Ser', 'UAG': '---', 'UGG': 'Urp', 'CUU': 'Leu', 'CCU': 'Pro', 'CAU': 'His', 'CGU': 'Arg', 'CUC': 'Leu', 'CCC': 'Pro', 'CAC': 'His', 'CGC': 'Arg', 'CUA': 'Leu', 'CCA': 'Pro', 'CAA': 'Gln', 'CGA': 'Arg', 'CUG': 'Leu', 'CCG': 'Pro', 'CAG': 'Gln', 'CGG': 'Arg', 'AUU': 'Ile', 'ACU': 'Thr', 'AAU': 'Asn', 'AGU': 'Ser', 'AUC': 'Ile', 'ACC': 'Thr', 'AAC': 'Asn', 'AGC': 'Ser', 'AUA': 'Ile', 'ACA': 'Thr', 'AAA': 'Lys', 'AGA': 'Arg', 'AUG': 'Met', 'ACG': 'Thr', 'AAG': 'Lys', 'AGG': 'Arg', 'GUU': 'Val', 'GCU': 'Ala', 'GAU': 'Asp', 'GGU': 'Gly', 'GUC': 'Val', 'GCC': 'Ala', 'GAC': 'Asp', 'GGC': 'Gly', 'GUA': 'Val', 'GCA': 'Ala', 'GAA': 'Glu', 'GGA': 'Gly', 'GUG': 'Val', 'GCG': 'Ala', 'GAG': 'Glu', 'GGG': 'Gly'} if self.ui.textEdit_3.toPlainText()!='': arn_resultTAB=self.ui.textEdit_3.toPlainText().split("\n") if self.ui.textEdit_2.toPlainText()!='': arn_result=self.ui.textEdit_2.toPlainText() else: arn_result=arn_resultTAB[0] pass ########################################################## la masse proteique # message box pour effecuter l epissage avant de calculer la masse ou avant la traduction de ARN en proteine if self.ui.textEdit_2.toPlainText()=='' and (btn.text()=='Calculer la masse protéique' or btn.text()=='Transcription ARN en protéines'): buttonReply = QMessageBox.question(self, "Attention!", "vous devez effectuer l'epissage avant!!", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if buttonReply == QMessageBox.Yes: print('Yes') ###################### try: # ouvrir le fichier des introns format FASTA filename = QFileDialog.getOpenFileName(self, 'Ouvrir le fichier des introns (FASTA) ', os.getenv('HOME')) FASTA_introns=final_FASTA(filename[0]) def epissage(ARN,introns): result = '' for intron in introns: ARN = ARN.replace(intron, '') return ARN self.ui.textEdit_2.setText(str(epissage(arn_result,FASTA_introns))) except Exception as e: print('Exception',str(e)) arn_result=str(epissage(arn_result,FASTA_introns)) print(arn_result) ###################### else: print('No') pass ####################################################### Calculer la masse protéique if btn.text()=='Calculer la masse protéique': print('Calculer la masse protéique') if self.ui.textBrowser_9.toPlainText()!='': print('fddf') prt_masse='' masse=0 for x in range(0,len(arn_result)-len(arn_result)%3,3): three_nuc=arn_result[x:x+3] if x!=len(arn_result)-3: if three_nuc=="UAA" or three_nuc=="UGA" or three_nuc=="UAG": break else: #prt_masse=prt_masse+RNA_codon_tabl.get(three_nuc) masse=masse+acide_aminee_MASS_TABLE2.get(RNA_codon_tabl.get(three_nuc)) pass pass pass #masse=0 #for value in range(0,len(prt_masse),3): #acide_aminee=prt_masse[value:value+3] #print(acide_aminee) #masse=masse+acide_aminee_MASS_TABLE2.get(acide_aminee) #pass self.ui.textBrowser_8.setText(str(masse)) ########################################################### transcription arn en proteine if btn.text()=='Transcription ARN en protéines': prt='' for x in range(0,len(arn_result)-len(arn_result)%3,3): three_nuc=arn_result[x:x+3] if x!=len(arn_result)-3: if three_nuc=="UAA" or three_nuc=="UGA" or three_nuc=="UAG": prt=prt+"STOP"+"\n" break else: prt=prt+RNA_codon_tabl.get(three_nuc)+"--" pass pass pass self.ui.textBrowser_9.setText(prt) print('Transcription ARN en protéines') ############################################################## effctuer l epissage if btn.text()=='Effectuer l\'épissage d\'ARN': print('Effectuer l\'épissage d\'ARN') try: filename = QFileDialog.getOpenFileName(self, 'Ouvrir le fichier des introns (FASTA) ', os.getenv('HOME')) FASTA_introns=final_FASTA(filename[0]) print(FASTA_introns) def epissage(ARN,introns): result = '' for intron in introns: ARN = ARN.replace(intron, '') return ARN self.ui.textEdit_2.setText(str(epissage(arn_result,FASTA_introns))) arn_result=str(epissage(arn_result,FASTA_introns)) except Exception as e: print('Exception',str(e)) #####################################fin des fonctions ARN ################################ ########################################################################################### ################################# les fonctions sur ADN ################################### # fonction pour affectuer l assamblage def FONCTIONS_ADN(self,btn): def assemblage(ADNs): print(ADNs) if len(ADNs)==2: return ADNs[0] else: j=0 SequenceF=ADNs[0] ADNs.pop(0) while(len(ADNs)!=0): t=[] for i in range(0,len(ADNs)): t.append(0) if not ADNs[i] in SequenceF: k=len(ADNs[i]) while(k>0): j1=SequenceF.endswith(ADNs[i][0:k]) if j1==True: if k>t[i]: t[i]=k k=k-1 else: ADNs.pop(i) j=t[0] jInd=0 for i1 in range(1,len(t)): if t[i1]>j: j=t[i1] jInd=i1 SequenceF=SequenceF[0:len(SequenceF)-j]+ADNs[jInd] ADNs.pop(jInd) return SequenceF pass ############################### ############################################################# dictionaire des adn codants DNA_CODON_TABLE = { 'TTT': 'Phe', 'CTT': 'Leu', 'ATT': 'Ile', 'GTT': 'Val', 'TTC': 'Phe', 'CTC': 'Leu', 'ATC': 'Ile', 'GTC': 'Val', 'TTA': 'Leu', 'CTA': 'Leu', 'ATA': 'Ile', 'GTA': 'Val', 'TTG': 'Leu', 'CTG': 'Leu', 'ATG': 'Met', 'GTG': 'Val', 'TCT': 'Ser', 'CCT': 'Pro', 'ACT': 'Thr', 'GCT': 'Ala', 'TCC': 'Ser', 'CCC': 'Pro', 'ACC': 'Thr', 'GCC': 'Ala', 'TCA': 'Ser', 'CCA': 'Pro', 'ACA': 'Thr', 'GCA': 'Ala', 'TCG': 'Ser', 'CCG': 'Pro', 'ACG': 'Thr', 'GCG': 'Ala', 'TAT': 'Tyr', 'CAT': 'His', 'AAT': 'Asn', 'GAT': 'Asp', 'TAC': 'Tyr', 'CAC': 'His', 'AAC': 'Asn', 'GAC': 'Asp', 'TAA': '-', 'CAA': 'Gln', 'AAA': 'Lys', 'GAA': 'Glu', 'TAG': '-', 'CAG': 'Gln', 'AAG,': 'Lys', 'GAG': 'Glu', 'TGT': 'Cys', 'CGT': 'Arg', 'AGT': 'Ser', 'GGT': 'Gly', 'TGC': 'Cys', 'CGC': 'Arg', 'AGC': 'Ser', 'GGC': 'Gly', 'TGA': '-', 'CGA': 'Arg', 'AGA': 'Arg', 'GGA': 'Gly', 'TGG': 'Trp', 'CGG': 'Arg', 'AGG': 'Arg', 'GGG': 'Gly' } if self.ui.textEdit.toPlainText()!='': adn_resultTAB=self.ui.textEdit.toPlainText().split("\n") if self.ui.radioButton_4.isChecked()==True and self.ui.textBrowser_3.toPlainText()!='': adn_result=self.ui.textBrowser_3.toPlainText() else: adn_result=adn_resultTAB[0] ################### if self.ui.radioButton_4.isChecked()==True and self.ui.textBrowser_3.toPlainText()=='' and btn.text()!='L\'assemblage des fragments ADN' and btn.text()!='Verifier Validite ADN': # message box pour effectuer l assemblage avant faire les tratments sur la sequence d'ADN buttonReply = QMessageBox.question(self, "Attention!", "Veuillez effectuer l'assemblage !!", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if buttonReply == QMessageBox.Yes: print('ah ndir') self.ui.textBrowser_3.setText(assemblage(adn_resultTAB)) adn_resultTAB=self.ui.textEdit.toPlainText().split("\n") adn_result=assemblage(adn_resultTAB) print(adn_result) else: print('non mandirch') pass ###############################################Verifier Validite ADN if btn.text()=='Verifier Validite ADN':#si ADN vien d un fichier print('Verifier Validite ADN') def verif(adn_result_pure): return len(adn_result_pure) == adn_result_pure.count("A")+adn_result_pure.count("T")+adn_result_pure.count("C")+adn_result_pure.count("G") if verif(adn_result): self.ui.pushButton_2.setEnabled(True) self.ui.pushButton_3.setEnabled(True) self.ui.pushButton_4.setEnabled(True) self.ui.pushButton_5.setEnabled(True) self.ui.pushButton_6.setEnabled(True) self.ui.pushButton_8.setEnabled(True) self.ui.pushButton_13.setEnabled(False) QMessageBox.about(self, "la validite de sequence", "sequence valide") else: self.ui.pushButton_7.setEnabled(False) self.ui.pushButton_13.setEnabled(False) self.ui.pushButton_2.setEnabled(False) self.ui.pushButton_3.setEnabled(False) self.ui.pushButton_4.setEnabled(False) self.ui.pushButton_5.setEnabled(False) self.ui.pushButton_6.setEnabled(False) self.ui.pushButton_8.setEnabled(False) self.ui.textEdit.setText('') QMessageBox.about(self, "la validite de sequence", "sequence no valide") #################################################Frequence Bn ADN if btn.text()=='Frequence Bn ADN': print('Frequence Bn ADN') try: self.ui.textBrowser_7.setText(str(adn_result.count("A"))) self.ui.textBrowser_6.setText(str(adn_result.count("T"))) self.ui.textBrowser_4.setText(str(adn_result.count("G"))) self.ui.textBrowser_5.setText(str(adn_result.count("C"))) except Exception as e: print('exeption') ################################################# generer ARN if btn.text()=='Generer ARN': print('Generer ARN') ARN='' for nuc in adn_result: if nuc=='C': ARN=ARN+'G' if nuc=='G': ARN=ARN+'C' if nuc=='A': ARN=ARN+'U' if nuc=='T': ARN=ARN+'A' self.ui.textEdit_3.setText(ARN) ################################################# revers de ADN if btn.text()=='Reverse ADN': print('Reverse ADN') adnrevers='' for nuc in adn_result: if nuc=='C': adnrevers=adnrevers+'G' if nuc=='G': adnrevers=adnrevers+'C' if nuc=='A': adnrevers=adnrevers+'T' if nuc=='T': adnrevers=adnrevers+'A' self.ui.textEdit_4.setText(adnrevers) ################################################# le taux de CG dans la sequence if btn.text()=='%GC': print('%GC') def tauxCG(ADN): return float(ADN.count("C")+ADN.count("G"))* 100 /len(ADN) self.ui.textBrowser.setText(str(tauxCG(adn_result))) ################################################# Fréquences de codons dans ADN if btn.text()==' Fréquences de codons dans ADN': print(' Fréquences de codons dans ADN') #les triple non codon ADN sont : TAA TAG TGA def frequencecondon(ADN): cpt_condon=0 cpt_noncondon=0 for i in range(0, len(ADN)-len(ADN)%3, 3): codon = ADN[i:i+3] if codon in DNA_CODON_TABLE and DNA_CODON_TABLE.get(codon)!='-': cpt_condon=cpt_condon+3 freq=(cpt_condon*100)/(len(ADN)) return freq self.ui.textBrowser_2.setText(str(frequencecondon(adn_result))) ################################################## assemblage des fragments ADN if btn.text()=='L\'assemblage des fragments ADN': print('L\'assemblage des fragments ADN') self.ui.textBrowser_3.setText(assemblage(adn_resultTAB)) ##################################################################################### ############################## fin des fonctions ADN ################################# def ADN_ENTRIE(self,btn): #self.ui.lineEdit.text() #self.ui.lineEdit_2.text() ############################################################################# Generer sequence ADN aleatoire def delet_file(namefile): if os.path.isfile(namefile): os.remove(namefile) else: ## Show an error ## print("Error: %s file not found" % namefile) if btn.text()=='Valider': print('valider') delet_file("nuc.txt") #hide liste radio buttons if self.ui.lineEdit.text()!='' and self.ui.lineEdit_2.text()!='': self.ui.listWidget_2.clear() self.ui.listWidget_2.hide() self.ui.radioButton_4.setChecked(True) self.ui.radioButton_3.setChecked(False) #si les edit texts non vide if self.ui.textEdit.toPlainText()!='': if self.ui.textEdit_4.toPlainText()!='' or self.ui.textBrowser_9.toPlainText()!='' or self.ui.textBrowser_8.toPlainText()!='' or self.ui.textEdit_2.toPlainText()!='' or self.ui.textEdit_3.toPlainText()!='' or self.ui.textBrowser_2.toPlainText()!='' or self.ui.textBrowser.toPlainText()!='' or self.ui.textEdit_4.toPlainText()!='' or self.ui.textBrowser_3.toPlainText()!='' or self.ui.textBrowser_4.toPlainText()!='' or self.ui.textBrowser_5.toPlainText()!='' or self.ui.textBrowser_7.toPlainText()!='' or self.ui.textBrowser_6.toPlainText()!='': # message box pour savgarder les resultats precedant ou ecraser buttonReply = QMessageBox.question(self, "Attention!", "vous allez ecraser vos resultat!! voulez vous Sauvegarder avant?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if buttonReply == QMessageBox.Yes: print('sauvgarder les resultat ') self.d.exec_() else: print('ecraser') ## efacer tt les resultat precedant self.ui.textEdit.setText('')#resultat de ADN self.ui.textEdit_4.setText('')#adn invers self.ui.textBrowser_3.setText('')#fragments adn assamnblee self.ui.textBrowser_4.setText('')# nuc G self.ui.textBrowser_5.setText('')# nuc C self.ui.textBrowser_7.setText('')# nuc A self.ui.textBrowser_6.setText('')# nuc T self.ui.textBrowser.setText('') # taux GC self.ui.textBrowser_2.setText('') # taux adn codants self.ui.textEdit_3.setText('') # resultat ARN self.ui.textEdit_2.setText('') # arn apres epissage self.ui.textBrowser_8.setText('') # la masse proteique self.ui.textBrowser_9.setText('') # sequence pretieque # the new adn adn='' nbr_nuc=int(self.ui.lineEdit.text()) nbr_sec=int(self.ui.lineEdit_2.text()) nuc=["A","T","C","G"] for n in range(nbr_sec): for m in range(nbr_nuc): adn=adn+nuc[random.randint(0,3)] adn=adn+"\n" self.ui.textEdit.setText(adn) ######"enableled les buttons self.ui.pushButton_2.setEnabled(True) self.ui.pushButton_3.setEnabled(True) self.ui.pushButton_4.setEnabled(True) self.ui.pushButton_5.setEnabled(True) self.ui.pushButton_6.setEnabled(True) self.ui.pushButton_8.setEnabled(True) else: adn='' nbr_nuc=int(self.ui.lineEdit.text()) nbr_sec=int(self.ui.lineEdit_2.text()) nuc=["A","T","C","G"] for n in range(nbr_sec): for m in range(nbr_nuc): adn=adn+nuc[random.randint(0,3)] adn=adn+"\n" self.ui.textEdit.setText(adn) ######"enableled les buttons self.ui.pushButton_2.setEnabled(True) self.ui.pushButton_3.setEnabled(True) self.ui.pushButton_4.setEnabled(True) self.ui.pushButton_5.setEnabled(True) self.ui.pushButton_6.setEnabled(True) self.ui.pushButton_8.setEnabled(True) #♥wech zedt else: adn='' nbr_nuc=int(self.ui.lineEdit.text()) nbr_sec=int(self.ui.lineEdit_2.text()) nuc=["A","T","C","G"] for n in range(nbr_sec): for m in range(nbr_nuc): adn=adn+nuc[random.randint(0,3)] adn=adn+"\n" self.ui.textEdit.setText(adn) ######"enableled les buttons self.ui.pushButton_2.setEnabled(True) self.ui.pushButton_3.setEnabled(True) self.ui.pushButton_4.setEnabled(True) self.ui.pushButton_5.setEnabled(True) self.ui.pushButton_6.setEnabled(True) self.ui.pushButton_8.setEnabled(True) #supprimer les resultat precedant else: print('edit text manquante ') ###################################################################### sequences ADN Generer depuis un fichier FASTA if btn.text()=='Chemin Vers Fichier': #hide liste radio buttons delet_file("nuc.txt") self.ui.listWidget_2.clear() self.ui.listWidget_2.hide() self.ui.radioButton_4.setChecked(True) self.ui.radioButton_3.setChecked(False) def readFASTA(filename): with open(filename) as file: return (file.read().split('>')[1:]) def read_FASTA_entries(filename): return[seq.partition('\n')for seq in readFASTA(filename)] def final_FASTA(filename): return[seq[2].replace('\n','') for seq in read_FASTA_entries(filename)] self.ui.listWidget_2.hide() self.ui.radioButton_4.setChecked(False) self.ui.radioButton_3.setChecked(False) if self.ui.textEdit.toPlainText()!='': if self.ui.textEdit_4.toPlainText()!='' or self.ui.textBrowser_9.toPlainText()!='' or self.ui.textBrowser_8.toPlainText()!='' or self.ui.textEdit_2.toPlainText()!='' or self.ui.textEdit_3.toPlainText()!='' or self.ui.textBrowser_2.toPlainText()!='' or self.ui.textBrowser.toPlainText()!='' or self.ui.textEdit_4.toPlainText()!='' or self.ui.textBrowser_3.toPlainText()!='' or self.ui.textBrowser_4.toPlainText()!='' or self.ui.textBrowser_5.toPlainText()!='' or self.ui.textBrowser_7.toPlainText()!='' or self.ui.textBrowser_6.toPlainText()!='': # message box pour savgarder les resultats precedant ou ecraser buttonReply = QMessageBox.question(self, "Attention!", "vous allez ecraser vos resultat voulez vous Sauvegarder avant?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if buttonReply == QMessageBox.Yes: print('sauvgarder les resultat ') self.d.exec_() else: print('ecraser') ## efacer tt les resultat precedant self.ui.textEdit.setText('')#resultat de ADN self.ui.textEdit_4.setText('')#adn invers self.ui.textBrowser_3.setText('')#fragments adn assamnblee self.ui.textBrowser_4.setText('')# nuc G self.ui.textBrowser_5.setText('')# nuc C self.ui.textBrowser_7.setText('')# nuc A self.ui.textBrowser_6.setText('')# nuc T self.ui.textBrowser.setText('') # taux GC self.ui.textBrowser_2.setText('') # taux adn codants self.ui.textEdit_3.setText('') # resultat ARN self.ui.textEdit_2.setText('') # arn apres epissage self.ui.textBrowser_8.setText('') # la masse proteique self.ui.textBrowser_9.setText('') # sequence pretieque # new ADN print('chemin vers chemin') self.ui.pushButton_13.setEnabled(True) self.ui.pushButton_2.setEnabled(False) self.ui.pushButton_3.setEnabled(False) self.ui.pushButton_4.setEnabled(False) self.ui.pushButton_5.setEnabled(False) self.ui.pushButton_6.setEnabled(False) self.ui.pushButton_8.setEnabled(False) # three methode to read a FASTA file adn='' try: filename = QFileDialog.getOpenFileName(self, 'Open File', os.getenv('HOME')) FASTA=final_FASTA(filename[0]) for value in FASTA: adn=adn+value+"\n" self.ui.textEdit.setText(adn) except Exception as e: print('exaption',str(e)) else: print('chemin vers chemin') self.ui.pushButton_13.setEnabled(True) self.ui.pushButton_2.setEnabled(False) self.ui.pushButton_3.setEnabled(False) self.ui.pushButton_4.setEnabled(False) self.ui.pushButton_5.setEnabled(False) self.ui.pushButton_6.setEnabled(False) self.ui.pushButton_8.setEnabled(False) # three methode to read a FASTA file adn='' try: filename = QFileDialog.getOpenFileName(self, 'Open File', os.getenv('HOME')) FASTA=final_FASTA(filename[0]) for value in FASTA: adn=adn+value+"\n" self.ui.textEdit.setText(adn) except Exception as e: print('exaption',str(e)) else: print('chemin vers chemin') self.ui.pushButton_13.setEnabled(True) self.ui.pushButton_2.setEnabled(False) self.ui.pushButton_3.setEnabled(False) self.ui.pushButton_4.setEnabled(False) self.ui.pushButton_5.setEnabled(False) self.ui.pushButton_6.setEnabled(False) self.ui.pushButton_8.setEnabled(False) # three methode to read a FASTA file adn='' try: filename = QFileDialog.getOpenFileName(self, 'Open File', os.getenv('HOME')) FASTA=final_FASTA(filename[0]) for value in FASTA: adn=adn+value+"\n" self.ui.textEdit.setText(adn) except Exception as e: print('exaption',str(e)) ################################################################################## ################## radio buttons pour choisir un sequence ou touts les sequences def RADIOSEQUENCE(self,btn): if btn.text()=='Toutes les sequences': print('Toutes les sequences') if self.ui.listWidget_2.count()!=0: adn='' for value in range(self.ui.listWidget_2.count()): adn=adn+self.ui.listWidget_2.item(value).text()+"\n" pass print(adn) self.ui.listWidget_2.hide() self.ui.textEdit.setText(adn) pass ################################################################################ ################################################################################# if btn.text()=='Une seul sequences': print('Une seul sequences') print(self.ui.listWidget_2.count()) if self.ui.listWidget_2.count()==0: print('not null') t=self.ui.textEdit.toPlainText().split("\n") if len(t)==1: self.ui.listWidget_2.addItem(t[0]) pass else: for value in range(len(t)-1): self.ui.listWidget_2.addItem(t[value]) print(t[value]) pass self.ui.listWidget_2.show() self.ui.listWidget_2.itemClicked.connect(self.itemANDclicked) def RADION_ADN_ENTRIE(self,btn2): if btn2.text()=='Generer Sequence Aleatoire': self.ui.ValiderNbrAdn.setEnabled(True) self.ui.pushButton_7.setEnabled(False) if btn2.text()=='Charger Fichier': self.ui.pushButton_7.setEnabled(True) self.ui.ValiderNbrAdn.setEnabled(False) ###################################################### def itemANDclicked(self,item): print(str(item.text())) if self.ui.textEdit.toPlainText()!='': if self.ui.textEdit_4.toPlainText()!='' or self.ui.textBrowser_9.toPlainText()!='' or self.ui.textBrowser_8.toPlainText()!='' or self.ui.textEdit_2.toPlainText()!='' or self.ui.textEdit_3.toPlainText()!='' or self.ui.textBrowser_2.toPlainText()!='' or self.ui.textBrowser.toPlainText()!='' or self.ui.textEdit_4.toPlainText()!='' or self.ui.textBrowser_3.toPlainText()!='' or self.ui.textBrowser_4.toPlainText()!='' or self.ui.textBrowser_5.toPlainText()!='' or self.ui.textBrowser_7.toPlainText()!='' or self.ui.textBrowser_6.toPlainText()!='': buttonReply = QMessageBox.question(self, "Attention!", "vous allez ecraser vos resultat voulez vous Sauvegarder avant?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if buttonReply == QMessageBox.Yes: print('sauvgarder les resultat ') self.d.exec_() else: print('ecraser') ## efacer tt les resultat precedant self.ui.textEdit.setText('')#resultat de ADN self.ui.textEdit_4.setText('')#adn invers self.ui.textBrowser_3.setText('')#fragments adn assamnblee self.ui.textBrowser_4.setText('')# nuc G self.ui.textBrowser_5.setText('')# nuc C self.ui.textBrowser_7.setText('')# nuc A self.ui.textBrowser_6.setText('')# nuc T self.ui.textBrowser.setText('') # taux GC self.ui.textBrowser_2.setText('') # taux adn codants self.ui.textEdit_3.setText('') # resultat ARN self.ui.textEdit_2.setText('') # arn apres epissage self.ui.textBrowser_8.setText('') # la masse proteique self.ui.textBrowser_9.setText('') # sequence pretieque # new ADN self.ui.textEdit.setText(item.text()) pass
class MyForm(QtGui.QMainWindow): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.nn = captcha.Net() QtCore.QObject.connect(self.ui.toolButtonBuscarCarpeta, QtCore.SIGNAL("clicked()"), self.folder_dialog) QtCore.QObject.connect(self.ui.toolButtonEntrenar,QtCore.SIGNAL("clicked()"), self.train) QtCore.QObject.connect(self.ui.toolButtonBuscarArchivo,QtCore.SIGNAL("clicked()"), self.file_dialog) QtCore.QObject.connect(self.ui.toolButtonCargar, QtCore.SIGNAL("clicked()"), self.show_captcha) QtCore.QObject.connect(self.ui.toolButtonDescifrar, QtCore.SIGNAL("clicked()"), self.process) QtCore.QObject.connect(self.ui.toolButtonModificar, QtCore.SIGNAL("clicked()"), self.modify) QtCore.QObject.connect(self.ui.pushButtonSalir, QtCore.SIGNAL("clicked()"), self.salir) def folder_dialog(self): fd = QtGui.QFileDialog(self) self.dir = fd.getExistingDirectory(caption= "Seleccionar carpeta", options=fd.ShowDirsOnly) self.ui.lineEditCarpeta.setText(self.dir) def train(self): folder = str(self.ui.lineEditCarpeta.text()) #dic = captcha.targetDic(folder) files = os.walk(folder).next()[2] files = filter(lambda e: e.endswith(('.bmp', '.jpeg', '.jpg', '.png')), files) #self.ui.progressBar.setRange(0, len(dic)) #count = 0 #for im in files: #if dic.has_key(im): #self.ui.labelProgress.setText(im) #xi = captcha.getInputs(im) #for i in range(5): hash = folder + "/hash.txt" if(isfile(hash)): self.nn.train(files, folder) else: print "No existe el archivo \"hash.txt\"" #count += 1 #self.ui.progressBar.setValue(count) def file_dialog(self): fd = QtGui.QFileDialog(self) self.filename = fd.getOpenFileName(caption= "Seleccionar archivo", filter="Images (*.png *.bmp *.jpg)") if isfile(self.filename): self.ui.lineEditArchivo.setText(self.filename) def show_captcha(self): scene = QtGui.QGraphicsScene() scene.addPixmap(QtGui.QPixmap(self.ui.lineEditArchivo.text())) self.ui.graphicsViewCaptcha.setScene(scene) def process(self): xi = captcha.getInputs(str(self.ui.lineEditArchivo.text())) self.ui.lineEdit.setText(self.nn.update(xi[0])) self.ui.lineEdit_2.setText(self.nn.update(xi[1])) self.ui.lineEdit_3.setText(self.nn.update(xi[2])) self.ui.lineEdit_4.setText(self.nn.update(xi[3])) self.ui.lineEdit_5.setText(self.nn.update(xi[4])) def modify(self): l1 = str(self.ui.lineEdit.text()) l2 = str(self.ui.lineEdit_2.text()) l3 = str(self.ui.lineEdit_3.text()) l4 = str(self.ui.lineEdit_4.text()) l5 = str(self.ui.lineEdit_5.text()) xi = captcha.getInputs(str(self.ui.lineEditArchivo.text())) targets = map(captcha.getTarget, [l1, l2, l3, l4, l5]) for i in range(5): self.nn.update(xi[i]) self.nn.backPropagate(targets[i]) def salir(self): captcha.updateFile(self.nn.wi, "../pesos.txt") captcha.updateFile(self.nn.wo, "../pesos2.txt") answer = QtGui.QMessageBox.question(self.parent(), u"¿Salir?", u"¿Está seguro que desea salir?", QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) if answer == QtGui.QMessageBox.Yes: self.close()
class MainWindow(QMainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.ui = Ui_MainWindow() self.ui.setupUi(self) self.ui.pushButton_2.clicked.connect(self.openPic) self.ui.pushButton_6.clicked.connect(self.esLink) self.ui.pushButton_4.clicked.connect(self.showslectedPic) self.ui.pushButton_5.clicked.connect(self.showPicresult) self.ui.checkBox.clicked.connect(self.checkBoxSlection) self.ui.checkBox_2.clicked.connect(self.checkBoxSlection) self.ui.checkBox_3.clicked.connect(self.checkBoxSlection) self.ui.checkBox_4.clicked.connect(self.checkBoxSlection) self.ui.checkBox_5.clicked.connect(self.checkBoxSlection) self.ui.checkBox_6.clicked.connect(self.checkBoxSlection) self.ui.pushButton_3.clicked.connect(self.uploadPic) self.tempList = [ self.ui.checkBox, self.ui.checkBox_2, self.ui.checkBox_3, self.ui.checkBox_4, self.ui.checkBox_5, self.ui.checkBox_6 ] self.checkSlectedFlage = 0 self.detectObjection = '' self.picName = '' self.address = ['', 8000] self.address[0] = self.ui.lineEdit.text() self.picUploadThread = picUploadThread() self.picUploadThread.startWaitRePicFla.connect(self.openWaitTimer) self.waitPicThread = waitPicThread(address=tuple(self.address), Obj=self.ui.textBrowser) self.waitPicThread.findPicSignal.connect(self.FindPicture) # self.showVideoThread = showVideoThread(uiobj = self.ui) #每当上传完图片会发送一个信号,这是接受槽 def openWaitTimer(self): self.waitPicThread.start() def FindPicture(self): #得到图片之后就把图片显示在界面上面 QMessageBox.about(self, '通知', '图片已经处理完毕') number = re.findall(r'\d+', picResultNmae) self.ui.label_4.setText( "<html><head/><body><p><span style=\" font-size:72pt; color:#5500ff;\">" + str(number[0]) + "</span></p></body></html>") #显示被选中的图片的槽函数 def showslectedPic(self): global localPicPath fname = localPicPath if fname: img = cv2.imdecode(np.fromfile(fname, dtype=np.uint8), -1) # 当使用中文路径的时候只能这样读 img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) self.zoomscale = 1 height, width, depth = img.shape frame = QImage(img.data, width, height, width * depth, QImage.Format_RGB888) pix = QPixmap.fromImage(frame) self.item = QGraphicsPixmapItem(pix) scene = QGraphicsScene() scene.addItem(self.item) self.ui.graphicsView.setScene(scene) else: pass #显示选中图片处理之后的槽函数 def showPicresult(self): global picResultPath fname = picResultPath if fname: img = cv2.imdecode(np.fromfile(fname, dtype=np.uint8), -1) # 当使用中文路径的时候只能这样读 img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) self.zoomscale = 1 height, width, depth = img.shape frame = QImage(img.data, width, height, width * depth, QImage.Format_RGB888) pix = QPixmap.fromImage(frame) self.item = QGraphicsPixmapItem(pix) scene = QGraphicsScene() scene.addItem(self.item) self.ui.graphicsView.setScene(scene) else: pass # 定义建立连接的槽 def esLink(self): addressTuple = tuple(self.address) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect(addressTuple) sock.send('&|&'.encode()) # 默认编码 utf-8,发送文件长度和文件名 reply = sock.recv(1024) if reply.decode() == 'link_ok': self.ui.textBrowser.append("成功连接服务器!!!") else: self.ui.textBrowser.append("连接服务器失败!!!") sock.close() # 以下定义的是打开图片按钮的槽 def openPic(self): global localPicPath print("打开图片被按下") self.ui.textBrowser.append("打开图片按钮 被按下") fname, _ = QFileDialog.getOpenFileName(self, '打开文件', '.', '图像文件(*.jpg *.png)') if fname: localPicPath = fname img = cv2.imdecode(np.fromfile(fname, dtype=np.uint8), -1) # 当使用中文路径的时候只能这样读 img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) self.zoomscale = 1 height, width, depth = img.shape frame = QImage(img.data, width, height, width * depth, QImage.Format_RGB888) pix = QPixmap.fromImage(frame) self.item = QGraphicsPixmapItem(pix) scene = QGraphicsScene() scene.addItem(self.item) self.ui.graphicsView.setScene(scene) else: pass # 以下是定义checkbox的槽函数 def checkBoxSlection(self): global realSendPicName if self.checkSlectedFlage == 0: for index, i in enumerate(self.tempList): if i.isChecked(): for index_j, j in enumerate(self.tempList): if index_j != index: j.setEnabled(False) self.checkSlectedFlage = 1 if index == 0: self.detectObjection = 'person' elif index == 1: self.detectObjection = 'desk' elif index == 2: self.detectObjection = 'car' elif index == 3: self.detectObjection = 'chair' elif index == 4: self.detectObjection = 'lightcar' elif index == 5: self.detectObjection = 'tv' self.picName = self.detectObjection realSendPicName = self.picName elif self.checkSlectedFlage == 1: for i in self.tempList: i.setEnabled(True) self.checkSlectedFlage = 0 # 以下是定义上传图片的槽 def uploadPic(self): global localPicPath if localPicPath == '': QMessageBox.warning(self, '警告', '请打开一张图片') elif self.checkSlectedFlage == 0: QMessageBox.warning(self, '警告', '请选择一个需要检测的物体') else: self.picUploadThread.start() def keyPressEvent(self, e): if e.key() == Qt.Key_Q: self.ui.textBrowser.append("Q被按下 图片被缩小") self.zoomscale = self.zoomscale - 0.05 if self.zoomscale <= 0: self.zoomscale = 0.2 self.item.setScale(self.zoomscale) if e.key() == Qt.Key_W: self.ui.textBrowser.append("W被按下 图片被放大") self.zoomscale = self.zoomscale + 0.05 if self.zoomscale >= 1.2: self.zoomscale = 1.2 self.item.setScale(self.zoomscale) def openVideo(self): self.showVideoThread.start(self.ui)
class mywindow(QtWidgets.QMainWindow): def __init__(self): super(mywindow, self).__init__() self.ui = Ui_MainWindow() self.ui.setupUi(self) self.setWindowTitle("Calculator") self.ui.pushButton.clicked.connect(self.btnClicked_1) self.ui.pushButton_2.clicked.connect(self.btnClicked_2) self.ui.pushButton_3.clicked.connect(self.btnClicked_3) self.ui.pushButton_4.clicked.connect(self.btnClicked_4) self.ui.pushButton_5.clicked.connect(self.btnClicked_5) self.ui.pushButton_6.clicked.connect(self.btnClicked_6) self.ui.pushButton_7.clicked.connect(self.btnClicked_7) self.ui.pushButton_8.clicked.connect(self.btnClicked_8) self.ui.pushButton_9.clicked.connect(self.btnClicked_9) self.ui.pushButton_10.clicked.connect(self.btnClicked_10) self.ui.pushButton_11.clicked.connect(self.btnClicked_11) self.ui.pushButton_12.clicked.connect(self.btnClicked_12) self.ui.pushButton_13.clicked.connect(self.btnClicked_13) self.ui.pushButton_14.clicked.connect(self.btnClicked_14) self.ui.pushButton_15.clicked.connect(self.btnClicked_15) self.ui.pushButton_16.clicked.connect(self.btnClicked_16) self.ui.pushButton_17.clicked.connect(self.btnClicked_17) def btnClicked_1(self): self.textbox = self.ui.lineEdit.text() self.ui.lineEdit.setText(self.textbox + " + ") def btnClicked_2(self): self.textbox = self.ui.lineEdit.text() self.ui.lineEdit.setText(self.textbox + " * ") def btnClicked_3(self): self.textbox = self.ui.lineEdit.text() self.ui.lineEdit.setText(self.textbox + " / ") def btnClicked_4(self): self.textbox = self.ui.lineEdit.text() self.ui.lineEdit.setText(str(result)) def btnClicked_5(self): self.textbox = self.ui.lineEdit.text() self.ui.lineEdit.setText(self.textbox + " - ") def btnClicked_6(self): self.textbox = self.ui.lineEdit.text() self.ui.lineEdit.setText(self.textbox + " = ") term = self.textbox.split() global result result = int(term[0]) for i in range(1, len(term), 2): if term[i] == '+': result = result + int(term[i + 1]) if term[i] == '-': result = result - int(term[i + 1]) if term[i] == '*': result = result * int(term[i + 1]) if term[i] == '/': result = result / int(term[i + 1]) self.textbox = self.ui.lineEdit.text() self.ui.lineEdit.setText(self.textbox + str(result)) def btnClicked_7(self): self.textbox = self.ui.lineEdit.text() self.ui.lineEdit.setText("") global result result = 0 def btnClicked_8(self): self.textbox = self.ui.lineEdit.text() self.ui.lineEdit.setText(self.textbox + "4") def btnClicked_9(self): self.textbox = self.ui.lineEdit.text() self.ui.lineEdit.setText(self.textbox + "1") def btnClicked_10(self): self.textbox = self.ui.lineEdit.text() self.ui.lineEdit.setText(self.textbox + "7") def btnClicked_11(self): self.textbox = self.ui.lineEdit.text() self.ui.lineEdit.setText(self.textbox + "2") def btnClicked_12(self): self.textbox = self.ui.lineEdit.text() self.ui.lineEdit.setText(self.textbox + "3") def btnClicked_13(self): self.textbox = self.ui.lineEdit.text() self.ui.lineEdit.setText(self.textbox + "5") def btnClicked_14(self): self.textbox = self.ui.lineEdit.text() self.ui.lineEdit.setText(self.textbox + "6") def btnClicked_15(self): self.textbox = self.ui.lineEdit.text() self.ui.lineEdit.setText(self.textbox + "8") def btnClicked_16(self): self.textbox = self.ui.lineEdit.text() self.ui.lineEdit.setText(self.textbox + "9") def btnClicked_17(self): self.textbox = self.ui.lineEdit.text() self.ui.lineEdit.setText(self.textbox + "0")
def __init__(self): super().__init__() self.ui=Ui_MainWindow() self.ui.setupUi(self) self.show() #les buttons de graph self.ui.pushButton_16.hide() #self.ui.pushButton_17.hide() self.ui.pushButton_17.clicked.connect(self.showgragh) #manuelle de utilasation 1 self.path = r"aide1.pdf" self.url = bytearray(QUrl().fromLocalFile(self.path).toEncoded()).decode() self.text = "<a href={}>></a>".format(self.url) self.ui.pushButton.setText(self.text+"?") self.ui.pushButton.setOpenExternalLinks(True) #manuelle de utilasation 2 self.path = r"aide2.pdf" self.url = bytearray(QUrl().fromLocalFile(self.path).toEncoded()).decode() self.text = "<a href={}>></a>".format(self.url) self.ui.pushButton_14.setText(self.text+"?") self.ui.pushButton_14.setOpenExternalLinks(True) #manuelle de utilasation 3 self.path = r"aide3.pdf" self.url = bytearray(QUrl().fromLocalFile(self.path).toEncoded()).decode() self.text = "<a href={}>></a>".format(self.url) self.ui.pushButton_15.setText(self.text+"?") self.ui.pushButton_15.setOpenExternalLinks(True) #griser les buttons self.ui.ValiderNbrAdn.setEnabled(False) self.ui.pushButton_7.setEnabled(False) self.ui.pushButton_13.setEnabled(False) self.ui.pushButton_2.setEnabled(False) self.ui.pushButton_3.setEnabled(False) self.ui.pushButton_4.setEnabled(False) self.ui.pushButton_5.setEnabled(False) self.ui.pushButton_6.setEnabled(False) self.ui.pushButton_8.setEnabled(False) self.ui.lineEdit.setPlaceholderText('#nuc') self.ui.lineEdit_2.setPlaceholderText('#sec') self.ui.listWidget_2.hide() # le button de sauvgarde du resultat self.ui.pushButton_9.clicked.connect(self.saveWindows) #les buttons des fonctions ARN self.btn_grp4= QButtonGroup() self.btn_grp4.setExclusive(True) self.btn_grp4.addButton(self.ui.pushButton_10) self.btn_grp4.addButton(self.ui.pushButton_11) self.btn_grp4.addButton(self.ui.pushButton_12) self.btn_grp4.buttonClicked.connect(self.FONCTIONS_ARN) #les buttons des fonctions ADN self.btn_grp3= QButtonGroup() self.btn_grp3.setExclusive(True) self.btn_grp3.addButton(self.ui.pushButton_13) self.btn_grp3.addButton(self.ui.pushButton_2) self.btn_grp3.addButton(self.ui.pushButton_3) self.btn_grp3.addButton(self.ui.pushButton_4) self.btn_grp3.addButton(self.ui.pushButton_5) self.btn_grp3.addButton(self.ui.pushButton_6) self.btn_grp3.addButton(self.ui.pushButton_8) self.btn_grp3.buttonClicked.connect(self.FONCTIONS_ADN) # les radio buttons un seul sequence plusius ADN self.btn_grpRADIO = QButtonGroup() self.btn_grpRADIO.setExclusive(True) self.btn_grpRADIO.addButton(self.ui.radioButton_4)# tts les sequences self.btn_grpRADIO.addButton(self.ui.radioButton_3)# un seule sequence self.btn_grpRADIO.buttonClicked.connect(self.RADIOSEQUENCE) #les botton de insertion de ADN self.btn_grp = QButtonGroup() self.btn_grp.setExclusive(True) self.btn_grp.addButton(self.ui.ValiderNbrAdn) self.btn_grp.addButton(self.ui.pushButton_7) self.btn_grp.buttonClicked.connect(self.ADN_ENTRIE) ########################### group de radio buttons self.btn_grp2 = QButtonGroup() self.btn_grp2.setExclusive(True) self.btn_grp2.addButton(self.ui.radioButton) self.btn_grp2.addButton(self.ui.radioButton_2) self.btn_grp2.buttonClicked.connect(self.RADION_ADN_ENTRIE) ##################################################################### # dialog de sauvgarde les resultats self.d = QDialog() self.d.setWindowTitle("Sauvgarde") self.d.resize(340, 400) self.d.setStyleSheet("background-color: #636363;") self.centralwidget = QWidget(self.d) self.centralwidget.setObjectName("centralwidget") self.groupBox_9 = QGroupBox(self.centralwidget) self.groupBox_9.setGeometry(QtCore.QRect(50, 80, 240, 231)) self.groupBox_9.setStyleSheet("QGroupBox \n""{\n""\n""color:#c2c2c2;\n""margin: 0em;\n"" border: 1px solid #c2c2c2; \n"" border-radius: 8px;\n""} \n""") self.groupBox_9.setTitle("") self.groupBox_9.setObjectName("groupBox_9") self.label_8 = QLabel(self.centralwidget) self.label_8.setGeometry(QtCore.QRect(70, 70, 81, 16)) self.label_8.setStyleSheet("font: 75 10pt \"Tw Cen MT\";\n""color:#c2c2c2;") self.label_8.setObjectName("label_8") self.save = QPushButton(self.centralwidget) self.save.setGeometry(QtCore.QRect(140, 320, 50, 23)) self.save.setStyleSheet("color:\"white\";\n""background-color:#d50000;") self.save.setObjectName("save") self.checkBox_2 = QCheckBox(self.centralwidget) self.checkBox_2.setGeometry(QtCore.QRect(90, 110, 151, 21)) self.checkBox_2.setStyleSheet("color:#c2c2c2;\n""font: 75 10pt \"Tw Cen MT\";") self.checkBox_2.setObjectName("checkBox_2") self.checkBox_3 = QCheckBox(self.centralwidget) self.checkBox_3.setGeometry(QtCore.QRect(90, 130, 151, 21)) self.checkBox_3.setStyleSheet("color:#c2c2c2;\n""font: 75 10pt \"Tw Cen MT\";") self.checkBox_3.setObjectName("checkBox_3") self.checkBox_4 = QCheckBox(self.centralwidget) self.checkBox_4.setGeometry(QtCore.QRect(90, 150, 151, 21)) self.checkBox_4.setStyleSheet("color:#c2c2c2;\n""font: 75 10pt \"Tw Cen MT\";") self.checkBox_4.setObjectName("checkBox_4") self.checkBox_5 = QCheckBox(self.centralwidget) self.checkBox_5.setGeometry(QtCore.QRect(90, 170, 151, 21)) self.checkBox_5.setStyleSheet("color:#c2c2c2;\n""font: 75 10pt \"Tw Cen MT\";") self.checkBox_5.setObjectName("checkBox_5") self.checkBox_6 = QCheckBox(self.centralwidget) self.checkBox_6.setGeometry(QtCore.QRect(90, 190, 151, 21)) self.checkBox_6.setStyleSheet("color:#c2c2c2;\n""font: 75 10pt \"Tw Cen MT\";") self.checkBox_6.setObjectName("checkBox_6") self.checkBox_7 = QCheckBox(self.centralwidget) self.checkBox_7.setGeometry(QtCore.QRect(90, 210, 191, 21)) self.checkBox_7.setStyleSheet("color:#c2c2c2;\n""font: 75 10pt \"Tw Cen MT\";") self.checkBox_7.setObjectName("checkBox_7") self.checkBox_8 = QCheckBox(self.centralwidget) self.checkBox_8.setGeometry(QtCore.QRect(90, 230, 191, 21)) self.checkBox_8.setStyleSheet("color:#c2c2c2;\n""font: 75 10pt \"Tw Cen MT\";") self.checkBox_8.setObjectName("checkBox_8") self.checkBox_9 = QCheckBox(self.centralwidget) self.checkBox_9.setGeometry(QtCore.QRect(90, 250, 191, 21)) self.checkBox_9.setStyleSheet("color:#c2c2c2;\n""font: 75 10pt \"Tw Cen MT\";") self.checkBox_9.setObjectName("checkBox_9") ###########les noms des widgets self.label_8.setText( "Sauvegrader:") self.save.setText( "Valider") self.checkBox_2.setText( "ADN Reverse") self.checkBox_3.setText( "Frequence Bn ADN") self.checkBox_4.setText( "Frequence codons") self.checkBox_5.setText( "%GC") self.checkBox_6.setText( " Sequences ARN") self.checkBox_7.setText( "Sequence ARN apres epissage") self.checkBox_8.setText( "Sequences proteique") self.checkBox_9.setText( "La masse protéique") self.save.clicked.connect(self.save_resultat)
class Bss(object): def __init__(self): self.app = QtWidgets.QApplication(sys.argv) # 生成应用 self.window = QtWidgets.QMainWindow() # 生成窗口q self.ui = Ui_MainWindow() # 使用QTdesigner自动创建的类 self.flag = 0 def startWin(self): self.flag = 0 # 判断是否读入文件 self.ui.setupUi(self.window) self.sc = showController(self.ui, self.window) self.winsize = WinSize(self.window) self.winsize.adjust() self.window.show() self.menuConnect() sys.exit(self.app.exec_()) def menuConnect(self): self.ui.menuFile.triggered[QAction].connect(self.importFile) # 菜单触发 self.ui.menuWindow.triggered[QAction].connect( self.setWindowSize) # 菜单触发调整窗口大小 self.ui.menu.triggered[QAction].connect(self.op) # 菜单触发调整窗口大小 self.ui.menuFilter.triggered[QAction].connect( self.filterFunc) # 菜单触发选择过滤器 # 下拉菜单触发函数 def handleActivatedInstitutionCode(self, index): code = self.combox.itemText(index) # 通过下拉框索引找到相应的机构代码 data = self.filter.get_data_by_institution_code(code) self.sc.setText(str(data)) import functools date_list = data.pop('日期') def create_button(dict, name=""): for key in dict: name = name + " " + key if type(dict[key]) != type(dict): b = self.sc.add_push_button(name + "变化", self.sc.get_layout()) b.clicked.connect( functools.partial(self.sc.draw_tendency_by_date, date_list, dict[key], name + "变化")) else: create_button(dict[key], name) name = " ".join(name.split(" ")[:-1]) # 减去上一个key create_button(data) # 找到字典中最底层的键值,并添加按钮 def handleActivatedDate(self, index): date = self.combox.itemText(index) # 通过下拉框索引找到相应的日期 data = self.filter.get_data_by_date(date) self.sc.setText(str(data)) data.pop('日期') institution_list = data.pop('机构代码') import functools def create_button(dict, name=""): for key in dict: name = name + " " + key if type(dict[key]) != type(dict): b = self.sc.add_push_button(name, self.sc.get_layout()) b.clicked.connect( functools.partial(self.sc.draw_tendency, institution_list, dict[key], name)) else: create_button(dict[key], name) name = " ".join(name.split(" ")[:-1]) # 减去上一个key create_button(data) # 找到字典中最底层的键值,并添加按钮 # 按钮触发 def handleActivatedCheckBox(self): checked_list = [] for checkBox in self.checkBox_list: if checkBox.isChecked(): checked_list.append(checkBox.text()) data_list = [] for code in checked_list: data_list.append(self.filter.get_data_by_institution_code(code)) self.sc.setText(str(data_list)) for data in data_list: date_list = data.pop('日期') key_value_list = [] def findValue(dict): for key in dict: if type(dict[key]) != type(dict): key_value_list.append(dict[key]) else: findValue(dict[key]) key_value_list_list = [] for data in data_list: key_value_list = [] findValue(data) # 找到字典中最底层的键值 key_value_list_list.append(key_value_list) import functools def create_button(dict, i, name=""): # print(dict,i) for key in dict: name = name + " " + key if type(dict[key]) != type(dict): i = i + 1 b = self.sc.add_push_button(name, self.sc.get_layout()) b.clicked.connect( functools.partial(self.sc.draw_tendency_compare, date_list, [x[i] for x in key_value_list_list], checked_list, name)) else: create_button(dict[key], i, name) name = " ".join(name.split(" ")[:-1]) # 减去上一个key for i in range(self.sc.get_layout().count()): x = self.sc.get_layout().itemAt(i) x.widget().deleteLater() # 清除布局内容 create_button(data_list[0], 0) # 找到字典中最底层的键,并添加按钮 # print(key_value_list) def handleActivatedCheckBox2(self): checked_list = [] # 被选中的项目 checked_index_list = [] # 选中项目的索引 for index, checkBox in enumerate(self.checkBox_list): if checkBox.isChecked(): checked_list.append(checkBox.text()) checked_index_list.append(index) if not checked_list: # 如果表为空则返回 return combox_text = self.combox.currentText() comboxDate_text = self.comboxDate.currentText() data_list = [] # 获取某一月份的某一机构的数据,放入表中 data = self.filter.get_data_by_date(comboxDate_text) data.pop('日期') for index, code in enumerate(data.pop('机构代码')): if code == combox_text: def findValue(dict): for key in dict: if type(dict[key]) != type(dict): data_list.append(dict[key][index]) else: findValue(dict[key]) findValue(data) break checked_content_list = [] for index in checked_index_list: checked_content_list.append(data_list[index]) self.sc.draw_pie_compare( checked_content_list, checked_list, "机构" + combox_text + comboxDate_text + "储蓄占额比较") # menuFunction def filterFunc(self, q): if self.flag == 0: # 判断表格是否读入 self.sc.alert("请导入数据") return self.filter = Filter(self.filename) layout = self.sc.get_layout() # 删除layout中所用的Item for i in range(layout.count()): x = layout.itemAt(i) x.widget().deleteLater() try: self.ui.pushButton.disconnect() # 解除按钮的所有绑定 except: pass if q.text() == "getDataByInstitutionCode": # self.sc.add_vertical_spacer(layout) self.sc.add_textLabel("机构代码", layout) self.combox = self.sc.add_comboBox("cb", layout) institution_code = self.filter.get_institution_code() self.combox.addItems(institution_code) # 给下拉菜单添加项目 self.combox.activated.connect( self.handleActivatedInstitutionCode) # 下拉菜单选中 if q.text() == "getDateList": self.sc.setText("dateList as following...") for i in self.filter.get_date_list(): self.sc.appendText(i) if q.text() == "getIndex": dict = self.filter.get_index_dict() self.sc.setText("indexList as following...") self.sc.printkeys(dict, 0) # 打印字典中的键值 if q.text() == "getDataByDate": self.sc.add_textLabel("日期", layout) self.combox = self.sc.add_comboBox("cb", layout) self.combox.addItems(self.filter.get_date_list()) # 给下拉菜单添加项目 self.combox.activated.connect(self.handleActivatedDate) # 下拉菜单选中 if q.text() == "compareInstitution": self.sc.add_textLabel("请选择需要对比的机构", layout) code_list = self.filter.get_institution_code() self.checkBox_list = [] for code in code_list: checkBox = self.sc.add_checkBox(code, layout) self.checkBox_list.append(checkBox) self.ui.pushButton.clicked.connect(self.handleActivatedCheckBox) if q.text() == "compareInnerStorage": self.sc.add_textLabel("请选择需要对比的机构以及月份", layout) self.combox = self.sc.add_comboBox("cb", layout) self.combox.addItems( self.filter.get_institution_code()) # 给下拉菜单添加项目 self.comboxDate = self.sc.add_comboBox("cbDate", layout) self.comboxDate.addItems(self.filter.get_date_list()) # 给下拉菜单添加项目 self.checkBox_list = [] for name in self.filter.get_name_list(): # 注意名字前有个空格 if name == " 日期" or name == " 机构代码" or name == " 本期日均余额" or name == " 本期增长": continue checkBox = self.sc.add_checkBox(name, layout) self.checkBox_list.append(checkBox) self.ui.pushButton.clicked.connect(self.handleActivatedCheckBox2) def importFile(self, q): # # 以下是打开文件对话框以及获取文件名的方法 # import win32ui # dlg = win32ui.CreateFileDialog(1) # # dlg.SetOFNInitialDir('D:/Work') # 设置打开文件对话框中的初始显示目录,无效 # dlg.DoModal() # try: # self.filename = dlg.GetPathName() # 获取选择的文件名称 # fc = FileController(self.sc) # self.sheet = fc.openXLS(self.filename) # 返回表格内容 # self.flag = 1 # 文件已打开 # except: # print("fail") self.filename = "余额数据.xlsx" self.flag = 1 # 文件已打开 def op(self, q): if self.flag == 0: # 判断表格是否读入 self.sc.alert("请导入数据") return text = q.text() opr = Opration(self.sheet, self.sc) if text == "getSum": opr.getSum() if text == "drawTendency": opr.drawTendency() if text == "addRationButton": opr.addRatioButton() def setWindowSize(self, q): self.sc.setWindowSize(q)
def __init__(self): self.app = QtWidgets.QApplication(sys.argv) # 生成应用 self.window = QtWidgets.QMainWindow() # 生成窗口q self.ui = Ui_MainWindow() # 使用QTdesigner自动创建的类 self.flag = 0
class CMWindow(QtWidgets.QWidget): def __init__(self, MainWindow): super().__init__(MainWindow) self.UI_obj = Ui_MainWindow() self.UI_obj.setupUi(MainWindow) self.color_dict = {'Blue': (0, 0, 255), 'Red': (255, 0, 0), 'Orange': (255, 127, 25)} self.UI_obj.fullimg = PainterLabel(5) self.UI_obj.fullimg.setAlignment(QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop) self.UI_obj.patch_group = {} self.UI_obj.HR_group = {} self.UI_obj.set_root.clicked.connect(self.setRoot) self.UI_obj.show_Fullimg.clicked.connect(self.show_Full_img) self.UI_obj.set_Saveroot_bt.clicked.connect(self.setSave) self.UI_obj.crop_viewbt.clicked.connect(self.cropView) self.UI_obj.save_finalbt.clicked.connect(self.saveAll_results) self.UI_obj.patchTab.currentChanged['int'].connect(self.add_Tab) self.UI_obj.tab_1 = QtWidgets.QScrollArea(self.UI_obj.patchTab) self.UI_obj.tab_2 = QtWidgets.QScrollArea(self.UI_obj.patchTab) self.UI_obj.patchTab.addTab(self.UI_obj.tab_1, 'Patch Group 1') self.UI_obj.patchTab.addTab(self.UI_obj.tab_2, '+') self.UI_obj.fullimg.installEventFilter(self) self.UI_obj.patchTab.installEventFilter(self) self.UI_obj.fullimg.drawRecFlag = False self.UI_obj.sub_dir_list.activated[str].connect(self.onActivated) def setRoot(self): dir_root_path = QtWidgets.QFileDialog.getExistingDirectory(None, "choose directory", "/media/4T/Dizzy/BasicSR-master/Final_Images/2020-12-26_results/ori") if dir_root_path: self.UI_obj.imgDirRoot.addItem(dir_root_path) self.UI_obj.imgDirRoot.setFont(QtGui.QFont('Times', 11)) self.UI_obj.imgDirRoot.setCurrentText(dir_root_path) self.subdirs = os.listdir(dir_root_path) self.UI_obj.sub_dir_list.clear() self.UI_obj.sub_dir_list.addItems(self.subdirs) self.UI_obj.sub_dir_list.setFont(QtGui.QFont('Times', 11)) self.UI_obj.sub_dir_list.setCurrentText('HR') img_list = sorted(os.listdir(os.path.join(dir_root_path, 'HR'))) self.UI_obj.img_list.clear() self.UI_obj.img_list.addItems(img_list) self.UI_obj.img_list.setFont(QtGui.QFont('Times', 11)) def show_Full_img(self): s = os.path.join(str(self.UI_obj.imgDirRoot.currentText()), str(self.UI_obj.sub_dir_list.currentText()), str(self.UI_obj.img_list.currentText())) if os.path.exists(os.path.join(self.UI_obj.imgDirRoot.currentText(), 'HR', self.UI_obj.img_list.currentText()).split('.')[0] + '.png'): self.HR_path = os.path.join(self.UI_obj.imgDirRoot.currentText(), 'HR', self.UI_obj.img_list.currentText().split('.')[0] + '.png') elif os.path.join(self.UI_obj.imgDirRoot.currentText(), 'HR', self.UI_obj.img_list.currentText().split('.')[0] + '.jpg'): self.HR_path = os.path.join(self.UI_obj.imgDirRoot.currentText(), 'HR', self.UI_obj.img_list.currentText().split('.')[0] + '.jpg') if self.UI_obj.img_list.currentText(): self.pixmap = QtGui.QPixmap(s) self.UI_obj.fullimg.setPixmap(self.pixmap) self.UI_obj.fullimg.adjustSize() # print(self.UI_obj.fullimg.size()) self.UI_obj.fullimg_window.setBackgroundRole(QtGui.QPalette.Dark) self.UI_obj.fullimg_window.setWidget(self.UI_obj.fullimg) self.UI_obj.fullimg.setMouseTracking(True) self.UI_obj.fullimg.setCursor(QtGui.QCursor(QtCore.Qt.CrossCursor)) else: QtWidgets.QMessageBox.warning(self, "Warning", "Please choose the Image Dir root first", QtWidgets.QMessageBox.Cancel) def setSave(self): dir_root_path = QtWidgets.QFileDialog.getExistingDirectory(None, "choose directory", "/media/4T/Dizzy/BasicSR-master/Final_Images/2020-12-26_results/ori") if dir_root_path: self.UI_obj.saveDirRoot.clear() self.UI_obj.saveDirRoot.addItem(dir_root_path) self.UI_obj.saveDirRoot.setFont(QtGui.QFont('Times', 11)) def cropView(self): left, upper, h, w = self.UI_obj.fullimg.getRect() resize_flag = self.UI_obj.resize_combobox.currentText() cropped_img_dict = {} for subdir in self.subdirs: img_name = self.UI_obj.img_list.currentText().split('.')[0] if os.path.exists(os.path.join(self.UI_obj.imgDirRoot.currentText(), subdir, img_name + '.png')): img_name = img_name + '.png' elif os.path.exists(os.path.join(self.UI_obj.imgDirRoot.currentText(), subdir, img_name + '.jpg')): img_name = img_name + '.jpg' else: QtWidgets.QMessageBox.warning(self, "Warning", "{} is not exists!".format(os.path.join(self.UI_obj.imgDirRoot.currentText(), subdir, img_name + '.png')), QtWidgets.QMessageBox.Cancel) cropped_imgs, resize = crop(self.UI_obj.imgDirRoot.currentText(), subdir, img_name, left, upper, h, w, self.color_dict[self.UI_obj.edge_colorcbox.currentText()], self.UI_obj.edgeWidthLine.text(), resize_flag) cropped_img_dict[subdir] = cropped_imgs if resize_flag == 'Crop square area': h, w = (max(h, w), max(h, w)) HR_wRect = draw_HRrec(self.HR_path, left, upper, h, w, self.color_dict[self.UI_obj.edge_colorcbox.currentText()], self.UI_obj.edgeWidthLine.text()) content_widget = QtWidgets.QWidget() flay = QtWidgets.QGridLayout(content_widget) layout_idx, caption_idx = 0, 0 tp_subdir = [] for subdir in self.subdirs: p = cropped_img_dict[subdir] object = QtWidgets.QLabel('Text') object_label = QtWidgets.QLabel(subdir) object.setFixedSize(resize[0], resize[1]) object_label.setFixedWidth(resize[1]) object_label.setAlignment(QtCore.Qt.AlignCenter) qImg = QtGui.QImage(p.data, p.shape[1], p.shape[0], p.shape[1] * 3, QtGui.QImage.Format_RGB888) img = QtGui.QPixmap.fromImage(qImg).scaled(resize[0], resize[1]) object.setPixmap(img) flay.addWidget(object, layout_idx // 3, layout_idx % 3) flay.addWidget(object_label, (layout_idx // 3) + 1, layout_idx % 3) tp_subdir.append(subdir) layout_idx += 1 if (layout_idx // 3) % 2 == 1: layout_idx += 3 showCrop_Position = QtWidgets.QPushButton(self.UI_obj.patchTab.currentWidget()) showCrop_Position.setFixedSize(resize[0], resize[1]) showCrop_Position.setText('Show crop positions \n in HR size') flay.addWidget(showCrop_Position, layout_idx // 3, layout_idx % 3) cropped_img_dict['HR_rect'] = HR_wRect self.UI_obj.patchTab.currentWidget().setWidget(content_widget) showCrop_Position.clicked.connect(self.show_crop_Pos) self.UI_obj.patch_group[self.UI_obj.patchTab.tabText(self.UI_obj.patchTab.currentIndex())] = cropped_img_dict self.UI_obj.HR_group[self.UI_obj.patchTab.tabText(self.UI_obj.patchTab.currentIndex())] = \ {'Crop_position': (left, upper, h, w), 'Color_digits': self.color_dict[self.UI_obj.edge_colorcbox.currentText()], 'Edge_width': self.UI_obj.edgeWidthLine.text(), 'Color_text': self.UI_obj.edge_colorcbox.currentText()} def show_crop_Pos(self): HR_wRect = self.UI_obj.patch_group[self.UI_obj.patchTab.tabText(self.UI_obj.patchTab.currentIndex())]['HR_rect'] HR_window = QtWidgets.QDialog(self.UI_obj.patchTab) HR_img = QtWidgets.QLabel(HR_window) qImg = QtGui.QImage(HR_wRect.data, HR_wRect.shape[1], HR_wRect.shape[0], HR_wRect.shape[1] * 3, QtGui.QImage.Format_RGB888) img = QtGui.QPixmap.fromImage(qImg).scaled(HR_wRect.shape[1]/4, HR_wRect.shape[0]/4) HR_img.setPixmap(img) HR_window.setFixedSize(HR_wRect.shape[1]/4, HR_wRect.shape[0]/4) HR_window.show() def add_Tab(self): num_tab = self.UI_obj.patchTab.currentIndex() if self.UI_obj.patchTab.tabText(num_tab) == '+': self.UI_obj.new_tab = QtWidgets.QScrollArea() self.UI_obj.new_tab.setObjectName('tab_{}'.format(num_tab - 1)) self.UI_obj.new_tab.setGeometry(self.UI_obj.tab_1.geometry()) self.UI_obj.new_tab.setWidgetResizable(False) self.UI_obj.patchTab.insertTab(num_tab, self.UI_obj.new_tab, 'Patch Group {}'.format(num_tab+1)) self.UI_obj.patchTab.setCurrentIndex(num_tab) def saveAll_results(self): if self.UI_obj.saveDirRoot: HR_img = np.array(Image.open(self.HR_path)) img_name = os.path.basename(self.HR_path).split('.')[0] save_path_root = self.UI_obj.saveDirRoot.currentText() for hr_info in self.UI_obj.HR_group: left, upper, h, w = self.UI_obj.HR_group[hr_info]['Crop_position'] color, edge_width = self.UI_obj.HR_group[hr_info]['Color_digits'], self.UI_obj.HR_group[hr_info]['Edge_width'] HR_img = cv2.rectangle(HR_img, (left, upper), (left + h, upper + w), color, thickness=int(edge_width)) pil = Image.fromarray(HR_img) img_name_format = '{}_{}_{}.png'.format(img_name, 'HR', 'Full_img') pil.save(os.path.join(save_path_root, img_name_format)) for pg in self.UI_obj.patch_group: color_text = self.UI_obj.HR_group[pg]['Color_text'] for subdir in self.UI_obj.patch_group[pg]: if subdir != 'HR_rect': pil = Image.fromarray(self.UI_obj.patch_group[pg][subdir]) img_name_format = '{}_{}_{}.png'.format(img_name, subdir, color_text) pil.save(os.path.join(save_path_root, img_name_format)) else: QtWidgets.QMessageBox.warning(self, "Warning", "Please choose the Save Dir root first", QtWidgets.QMessageBox.Cancel) def eventFilter(self, QObject, QEvent): if QObject == self.UI_obj.fullimg: if QEvent.type() == QtGui.QMouseEvent.MouseMove: self.UI_obj.statusBar.showMessage( 'Image size: {}, {}, current position: {}, {}' .format(self.UI_obj.fullimg.frameGeometry().height(), self.UI_obj.fullimg.frameGeometry().width(), QEvent.y(), QEvent.x())) return False return False def onActivated(self, text): dir_root_path = self.UI_obj.imgDirRoot.currentText() self.UI_obj.sub_dir_list.clear() self.UI_obj.sub_dir_list.addItems(self.subdirs) self.UI_obj.sub_dir_list.setFont(QtGui.QFont('Times', 11)) self.UI_obj.sub_dir_list.setCurrentText(text) img_list = os.listdir(os.path.join(dir_root_path, text)) self.UI_obj.img_list.clear() self.UI_obj.img_list.addItems(img_list) self.UI_obj.img_list.setFont(QtGui.QFont('Times', 11)) # class MouseTracker(QtWidgets.QWidget): # def __init__(self, img, pl): # super().__init__() # self.label = QtWidgets.QLabel(self) # self.label.resize(200, 40) # self.setMouseTracking(True) # # # def mouseMoveEvent(self, event): # self.label.setText('Mouse coords: ( %d : %d )' % (event.x(), event.y())) # # return 1