Beispiel #1
0
    def __init__(self):
        super(ApplicationWindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.setFixedSize(1500, 930)
        
    ##############  UI control lists  ##############
        self.imageViews = [self.ui.graphicsView , self.ui.graphicsView_2 ] 
        self.legend = [0, 0, 0] # guard for legend overaddition

        for image in self.imageViews : ## hide unwanted options
            image.ui.histogram.hide()
            image.ui.roiBtn.hide()
            image.ui.menuBtn.hide()
            image.ui.roiPlot.hide()

    ############# initialize fourier #############
        self.originalImage0 = cv.cvtColor(cv.imread('images/Brain2.png'),cv.COLOR_BGR2GRAY)
        #plot original
        self.imageViews[0].show()
        self.imageViews[0].setImage(self.originalImage0.T)

        #plot fourier
        self.imageViews[1].show()
        self.imageViews[1].setImage(fourier(self.originalImage0).T)
    ####################################
        #self.axes1 = self.ui.graphicsView1.figure.add_subplot(111, title="$M_x/M_o$ vs time")
        #self.axes2 = self.ui.graphicsView2.figure.add_subplot(111)
        #self.axes3 = self.ui.graphicsView3.figure.add_subplot(111)
        
    ##############  UI Signals  ##############
        self.ui.pushButton.clicked.connect(lambda: self.plotEffect())
        self.ui.pushButton_2.clicked.connect(lambda : self.plotFourier())
    def __init__(self):
        super(ApplicationWindow, self).__init__()

        self.ui = Ui_MainWindow()

        #intialize memebers of class plot_data that contains all the functions
        #and the variables needed for plotting to avoid repeativness
        self.Ugraph_1 = Plot_Data()

        #Empty arrays used in singular-import function
        self.Empty_X = []
        self.Empty_Y = []

        #Toggles for the exception handling of pressing start button and crashing before any graph is drawn, used in import
        self.HasEntered1stView = 0

        pg.setConfigOption('background', 'w')

        self.ui.setupUi(self)

        self.ui.StartButton.clicked.connect(self.Startplot)

        self.ui.StopButton.clicked.connect(self.Stop_1)

        self.ui.HideButton.clicked.connect(self.Hide)

        self.ui.ExitButton.clicked.connect(self.Exit)

        self.ui.EmptyButton.clicked.connect(self.Empty)
Beispiel #3
0
class ClipWiz:
    def __init__(self):
        #Set up DB
        self.db = DB()
        #Call keyboard manager
        self.km = KM (self)
        #Call GUI & set it up
        self.gui = Ui_MainWindow(self)
        self.gui.setup()
        self.km.stop()
        sys.exit()

    def copy(self, content):
        pyperclip.copy(content)

    def getData(self):
        return self.db.data

    def insert_clip(self, content):
        inserted = self.db.insert_clip(content)
        if inserted:
            self.gui.ins_data_in_table(inserted, False)

    def search(self, text):
        return self.db.search(text)

    def reset(self):
        self.db.reset()
Beispiel #4
0
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        ##################Buttons#######################################################################
        self.ui.pushButton.clicked.connect(self.calculate)
Beispiel #5
0
    def __init__(self):
        super().__init__()
        self.gui = Ui_MainWindow()
        self.gui.setupUi(self)

        try:
            js = json.load(open('config.json', encoding='utf-8'))
            self.user_name = js['Login']['user_name']
            self.user_password = js['Login']['user_password']
            self.user_cookies = js['Login']['user_cookies']
            self.ban_status = js['Setting']['ban_status']
            self.ban_word = js['Setting']['ban_word']
            self.work_thread = js['Setting']['work_thread']
            self.download_thread = js['Setting']['download_thread']
            self.screening_criteria = js['Setting']['screening_criteria']
        except:
            self.gui.listWidget.addItem('读取配置文件失败')
            self.work = False
        else:
            self.work = True

        self._search_type = {'全年龄': 'safe', '全部': 'all', 'R18': 'r18'}

        self.gui.button_search_start.clicked.connect(self.search)
        self.gui.button_ranking_start.clicked.connect(self.ranking)
Beispiel #6
0
    def __init__(self, parent=None):
        QMainWindow.__init__(self, parent)
        Ui_MainWindow.__init__(self)
        self.setupUi(self)

        # canvas with graph
        layout = QVBoxLayout(self.graphicsView)
        layout.setContentsMargins(0, 0, 0, 0)
        self.graphicsView.setLayout(layout)
        # create plotHandler
        self.plotHandler = PlotHandler(self)
        layout.addWidget(self.plotHandler.get_widget())

        self.changeButton.clicked.connect(self.update_plot)
        self.generateButton.clicked.connect(self.generate_population)

        # ToolBox with algorithms
        QtCore.QObject.connect(self.chooseSearchToolBox,
                               QtCore.SIGNAL('currentChanged(int)'),
                               self,
                               QtCore.SLOT('algorithm_change_callback(int)')
                               )

        # Run button
        self.ButtonRun.clicked.connect(self.run_button_callback)
        # Step Button
        self.ButtonStep.clicked.connect(self.step_button_callback)

        # Evolution algorithm important properties
        self.algorithm = None
        self.test_functions = None
        self.fitness_function = None
        self.actualPopulation = None
        # Plot initialization
        self.initialize_plot()
class MyWindow(QMainWindow):

    def __init__(self, parent=None):
        QWidget.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.setInputStrings()
        self.ui.buttonCheck.clicked.connect(self.clickMethod)

    def setInputStrings(self):
        if self.ui.boxCaseSensitivity.isChecked():
            self.inputMatrix = self.ui.inputFieldMatrix.toPlainText()
            self.inputWord = self.ui.inputFieldKeyword.text()
        else:
            self.inputMatrix = self.ui.inputFieldMatrix.toPlainText().upper()
            self.inputWord = self.ui.inputFieldKeyword.text().upper()

    def clickMethod(self):
        self.setInputStrings()
        myMatrix = LetterMatrix(self.inputMatrix)
        if myMatrix.correctInput():
            wordAppearances = str(myMatrix.totalWordAppearances(self.inputWord))
            self.ui.labelOutput.setText("Das Wort wurde " + wordAppearances + " mal gefunden")
        else:
            self.ui.labelOutput.setText("Ungültige Eingabe")
Beispiel #8
0
    def __init__(self):
        super().__init__()

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.ip   = ""
        self.port = ""
        self.link = "http://aargin.com/"
Beispiel #9
0
 def __init__(self):
     #Set up DB
     self.db = DB()
     #Call keyboard manager
     self.km = KM (self)
     #Call GUI & set it up
     self.gui = Ui_MainWindow(self)
     self.gui.setup()
     self.km.stop()
     sys.exit()
Beispiel #10
0
    def __init__(self):
        super(mywindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.setAcceptDrops(True)

        self.ui.pushB_Init2.clicked.connect(self.pushB_Init2)
        self.ui.pushB_Init12.clicked.connect(self.pushB_Init12)
        self.ui.pushB_Connect.clicked.connect(self.pushB_Connect)

        self.ui.pushB_Restart.clicked.connect(self.pushB_Restart)
Beispiel #11
0
 def __init__(self): 
     QtWidgets.QMainWindow.__init__(self) 
     Ui_MainWindow.__init__(self) 
     self.setupUi(self) 
            
     self.importar.clicked.connect(self.getxls)
     self.analizar.clicked.connect(self.plot1)
     self.analizar.clicked.connect(self.reporte)
     self.analizar.clicked.connect(self.progreso)
     
     print("Morita 1.0")
Beispiel #12
0
def main():
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()

    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    windowStyle.styles.dark(app)
    mw = windowStyle.window.ModernWindow(MainWindow)
    mw.setWindowTitle("Volume Buddy")

    mw.show()

    app.exec_()
Beispiel #13
0
    def __init__(self):
        super(mywindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        #self.setAcceptDrops(True)
        #print(app.arguments())
        mywindow.source = app.arguments()[1]
        #self.ui.comboBox.addItem(app.arguments()[1])
        mywindow.target = r"\\192.168.1.170\мах"
        self.statusBar().showMessage(mywindow.target + " to " +
                                     mywindow.source)
        self.ui.Send.clicked.connect(self.SendF)

        self.ui.Cancel.clicked.connect(self.CancelF)
Beispiel #14
0
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        ### link the PyQt generated file to a specific method (methods are defined below)###
        ##################<Buttons>#####################################################################
        self.ui.pushButton_connect.clicked.connect(self.connect)
        self.ui.pushButton_disconnect.clicked.connect(self.disconnect)

        self.ui.pushButton_ventilationFanON.clicked.connect(self.ventilationFanON)
        self.ui.pushButton_ventilationFanOFF.clicked.connect(self.ventilationFanOFF)
        self.ui.pushButton_circulationFanON.clicked.connect(self.circulationFanON)
        self.ui.pushButton_circulationFanOFF.clicked.connect(self.circulationFanOFF)
        self.ui.pushButton_panelLightON.clicked.connect(self.panelLightON)
        self.ui.pushButton_panelLightOFF.clicked.connect(self.panelLightOFF)
        self.ui.pushButton_humidifierON.clicked.connect(self.humidifierON)
        self.ui.pushButton_humidifierOFF.clicked.connect(self.humidifierOFF)

        self.ui.pushButton_growLightON.clicked.connect(self.growLightON)
        self.ui.pushButton_growLightOFF.clicked.connect(self.growLightOFF)
        self.ui.pushButton_heaterON.clicked.connect(self.heaterON)
        self.ui.pushButton_heaterOFF.clicked.connect(self.heaterOFF)
        self.ui.pushButton_waterPumpON.clicked.connect(self.waterPumpON)
        self.ui.pushButton_waterPumpOFF.clicked.connect(self.waterPumpOFF)
        self.ui.pushButton_airPumpON.clicked.connect(self.airPumpON)
        self.ui.pushButton_airPumpOFF.clicked.connect(self.airPumpOFF)
Beispiel #15
0
class mywindow(QtWidgets.QMainWindow):
    source = ""
    target = ""

    CURENT = 0

    def __init__(self):
        super(mywindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        #self.setAcceptDrops(True)
        #print(app.arguments())
        mywindow.source = app.arguments()[1]
        #self.ui.comboBox.addItem(app.arguments()[1])
        mywindow.target = r"\\192.168.1.170\мах"
        self.statusBar().showMessage(mywindow.target + " to " +
                                     mywindow.source)
        self.ui.Send.clicked.connect(self.SendF)

        self.ui.Cancel.clicked.connect(self.CancelF)

    def SendF(self):

        #proc = subprocess.Popen('ls', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        #proc.wait()
        #res = proc.communicate()
        #shutil.copy(mywindow.source.replace('\\','\\'), mywindow.target.replace('\\','\\'))

        #self.statusBar().showMessage(mywindow.source + " to " + mywindow.target )
        try:
            os.system(
                'C:\\Windows\\robocopy.exe /y "{source}" "{target}" > nul'.
                format(source=mywindow.source, target=mywindow.target))
            #proc = subprocess.Popen('ls', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        except IOError as e:
            print("Unable to copy file. %s" % e)
            exit(1)
        except:
            print("Unexpected error:", sys.exc_info())
            exit(1)
        #
        self.statusBar().showMessage("oooo")

    def CancelF(self):
        print("Exit")
        sys.exit()
Beispiel #16
0
 def __init__(self):
     super(ApplicationWindow,self).__init__()
     self.ui = Ui_MainWindow()
     self.ui.setupUi(self)
     self.ui.actionOpen_Image.triggered.connect(self.OpenImage)
     self.ui.Combo1.currentTextChanged.connect(self.ChooseOperation)
     self.ui.comboBox.currentTextChanged.connect(self.Gradients)
     self.ui.Combo1.setCurrentIndex(0)
     self.widgets = [self.ui.InputImage1,self.ui.FourierInput1]
     for i in range(len(self.widgets)):
         self.widgets[i].ui.histogram.hide()
         self.widgets[i].ui.roiBtn.hide()
         self.widgets[i].ui.menuBtn.hide()
         self.widgets[i].ui.roiPlot.hide()
     self.pen1 = pg.mkPen(color=(255, 0, 0))
     self.pen2 = pg.mkPen(color=(0, 0, 255))
     self.ui.pushButton.clicked.connect(self.ShowGraph)
Beispiel #17
0
    def __init__(self):
        super(Editor, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.main_text.setText('Hello!')

        self.ui.menu_save.triggered.connect(self.save)
        self.ui.menu_open.triggered.connect(self.open)
        self.ui.menu_print.triggered.connect(self.print_file)
        self.ui.menu_print_preview.triggered.connect(self.print_preview)
        self.ui.menu_export_pdf.triggered.connect(self.export_pdf)

        self.text_weight = lambda: QFont.Bold if self.ui.bold_checkBox.isChecked(
        ) else 0

        self.ui.color_change_button.clicked.connect(self.change_font_color)

        self.ui.left_alignment.triggered.connect(
            lambda: self.ui.main_text.setAlignment(Qt.AlignLeft))

        self.ui.center_alignment.triggered.connect(
            lambda: self.ui.main_text.setAlignment(Qt.AlignCenter))

        self.ui.right_alignment.triggered.connect(
            lambda: self.ui.main_text.setAlignment(Qt.AlignRight))

        self.ui.justify_alignment.triggered.connect(
            lambda: self.ui.main_text.setAlignment(Qt.AlignJustify))

        self.ui.bold_checkBox.toggled.connect(
            lambda: self.ui.main_text.setFontWeight(self.text_weight()))

        self.ui.italic_checkBox.toggled.connect(
            lambda: self.ui.main_text.setFontItalic(self.ui.italic_checkBox.
                                                    isChecked()))

        self.ui.underline_checkBox.toggled.connect(
            lambda: self.ui.main_text.setFontUnderline(
                self.ui.underline_checkBox.isChecked()))

        self.ui.font_size_spinBox.valueChanged.connect(
            lambda: self.ui.main_text.setFontPointSize(
                self.ui.font_size_spinBox.value()))

        self.ui.select_font_box.currentFontChanged.connect(self.change_font)
Beispiel #18
0
 def __init__(self, parent=None):
     # call the parent class's constructor
     QtWidgets.QMainWindow.__init__(self, parent)
     self.ui = Ui_MainWindow()
     self.ui.setupUi(self)
     self.ui.pushButton_1.clicked.connect(self.select_file)
     self.ui.pushButton_2.clicked.connect(self.run_datapoints)
     self.ui.dateEdit_1.setDateTime(QtCore.QDateTime.currentDateTime())
     self.ui.dateEdit_2.setDateTime(QtCore.QDateTime.currentDateTime())
     self.ui.dateEdit_1.dateChanged.connect(self.update_date)
     self.ui.radioButton_1.setChecked(True)
     self.ui.radioButton_4.setChecked(True)
     self.ui.pushButton_3.clicked.connect(self.run_regression)
     self.ui.lineEdit_3.setText("5")
     self.ui.lineEdit_4.setText("10")
     self.ui.pushButton_4.clicked.connect(self.write_excel)
     self.ui.graphicsView_1.hide()
     self.ui.graphicsView_2.hide()
     self.MessageBox = ctypes.windll.user32.MessageBoxW
Beispiel #19
0
    def __init__(self):
        super(ApplicationWindow, self).__init__()
        pg.setConfigOption('background', '042629')

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.ui.InputViewerArray = [
            self.ui.ImageOneview, self.ui.ImageTwoView,
            self.ui.ImageOneComponent, self.ui.ImageTwoComponent,
            self.ui.ModifiedOne, self.ui.ModifiefTwo
        ]
        for i in range(len(self.ui.InputViewerArray)):
            self.ui.InputViewerArray[i].getPlotItem().hideAxis('left')
            self.ui.InputViewerArray[i].getPlotItem().hideAxis('bottom')

        self.ImageOneChoice = True
        self.ImageObject = [0, 0]
        self.ImageDrawArray = [0, 0]
        self.ImageArray = [0, 0]
        self.FilePathArray = [0, 0]
        self.ui.ComponentOneChoice.currentTextChanged.connect(self.ComboValues)
        self.ui.Browser.clicked.connect(self.Browse)
        self.ui.DrawComboArray = [
            self.ui.ImageOneViewChoice, self.ui.ImageTwoViewChoice
        ]
        self.ui.SlidersArray = [self.ui.MixerSliderOne, self.ui.MixerSliderTwo]
        self.ui.TextArray = [self.ui.SliderOneValue, self.ui.SliderTwoValue]
        self.ui.ImageOneViewChoice.currentTextChanged.connect(
            lambda: self.Draw(0, 0, 0, 2, None))
        self.ui.ImageTwoViewChoice.currentTextChanged.connect(
            lambda: self.Draw(1, 1, 0, 3, None))
        self.ui.MixerSliderOne.valueChanged.connect(
            lambda: self.SlidersValue(0))
        self.ui.MixerSliderTwo.valueChanged.connect(
            lambda: self.SlidersValue(1))
        for i in range(2):
            self.ui.ImageMixerOneChoice.model().item(i + 1).setEnabled(False)
            self.ui.ImageMixerTwoChoice.model().item(i + 1).setEnabled(False)
Beispiel #20
0
class Pencere(QMainWindow):

    def __init__(self):
        super().__init__()

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.ip   = ""
        self.port = ""
        self.link = "http://aargin.com/"

    def siteyeGit_A(self):
        # Proxyyi siteden çektik, ip ve portu aldık
        # 1 https://gimmeproxy.com/api/getProxy
        # 2 https://api.getproxylist.com/proxy
        proxyCek = requests.get("https://api.getproxylist.com/proxy")
        self.ip,self.port = proxyCek.json()['ip'], str(proxyCek.json()['port'])

        self.ui.lblIp.setText("IP : "+self.ip)
        self.ui.lblPort.setText("PORT : "+self.port)
        self.ui.lblApiSite.setText("API : https://api.getproxylist.com/proxy")

        proxyAyarla(self.ip,self.port,self.link)

    def siteyeGit_M(self):
        proxyAyarla(self.ip,self.port,self.link)

    def getIp(self, ip):
        self.ip = ip
    
    def getPort(self, port):
        self.port = port
    
    def getLink1(self, link):
        self.link = link
    
    def getLink2(self, link):
        self.link = link
Beispiel #21
0
    def __init__(self, parent=None):
        super(self.__class__, self).__init__()
        self.car = None
        self.rps_counter = None

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.ui.forwardBtn.clicked.connect(self.forward_clicked)
        self.ui.backBtn.clicked.connect(self.backward_clicked)
        self.ui.leftBtn.clicked.connect(self.left_clicked)
        self.ui.rightBtn.clicked.connect(self.right_clicked)
        self.ui.stopBtn.clicked.connect(self.stop_clicked)
        self.ui.startButton.clicked.connect(self.start_clicked)

        self.ui.actionOpen_Writer.triggered.connect(self.open_writer)
        self.ui.actionExit.triggered.connect(self.exit)
        self.ui.actionAbout.triggered.connect(self.about)

        self.img_left = self.ui.img_left
        self.img_right = self.ui.img_right
        self.img_center = self.ui.img_center

        self.camera_label = {
            'camera_r': self.img_left,
            'camera_c': self.img_center,
            'camera_l': self.img_right
        }

        self.sensor_label = {
            'left': self.ui.sensor_left,
            'center': self.ui.sensor_center,
            'right': self.ui.sensor_right
        }

        self.add_log("DrivingMatter GUI Started.")
        self.show_image()
Beispiel #22
0
class DPR(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        # call the parent class's constructor
        QtWidgets.QMainWindow.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.pushButton_1.clicked.connect(self.select_file)
        self.ui.pushButton_2.clicked.connect(self.run_datapoints)
        self.ui.dateEdit_1.setDateTime(QtCore.QDateTime.currentDateTime())
        self.ui.dateEdit_2.setDateTime(QtCore.QDateTime.currentDateTime())
        self.ui.dateEdit_1.dateChanged.connect(self.update_date)
        self.ui.radioButton_1.setChecked(True)
        self.ui.radioButton_4.setChecked(True)
        self.ui.pushButton_3.clicked.connect(self.run_regression)
        self.ui.lineEdit_3.setText("5")
        self.ui.lineEdit_4.setText("10")
        self.ui.pushButton_4.clicked.connect(self.write_excel)
        self.ui.graphicsView_1.hide()
        self.ui.graphicsView_2.hide()
        self.MessageBox = ctypes.windll.user32.MessageBoxW

    # after first date edit is changed, update second date edit to be a year later
    def update_date(self):
        get_date = self.ui.dateEdit_1.date().toString("yyyy-M-d")
        new_datetime = pd.to_datetime(get_date) + relativedelta(months=+12)
        change_datetime = QtCore.QDateTime.fromString(str(new_datetime),
                                                      "yyyy-M-d hh:mm:ss")
        self.ui.dateEdit_2.setDateTime(change_datetime)

    # check if file is selected
    def select_file(self):
        filename, _ = QtWidgets.QFileDialog.getOpenFileName(
            None, "Select File", "", "Text Files (*.txt)")
        if filename:
            # outputs
            self.ui.lineEdit_1.setText(filename)
            self.filename = filename

    def run_datapoints(self):
        delimiter = str(self.ui.comboBox_1.currentText())
        has_headers = self.ui.checkBox_1.isChecked()

        if self.ui.lineEdit_1.text() == "":
            self.MessageBox(None, "No file selected.", "File Error", 0)
            return

        try:
            data = self.prepare_data(delimiter, has_headers)
        except pd.errors.EmptyDataError:
            self.MessageBox(None, "No data in file.", "Empty Data Error", 0)
            return

        if data is 0:
            self.MessageBox(None,
                            "Problem reading file. Check header declaration.",
                            "Attribute Error", 0)
            return
        elif data is 1:
            self.MessageBox(None, "Column 1 should be date type.",
                            "Attribute Error", 0)
            return
        elif data is 2:
            self.MessageBox(None, "Column 2 should be date type.",
                            "Attribute Error", 0)
            return
        elif data is 3:
            self.MessageBox(None, "Column 3 should be currency.",
                            "Attribute Error", 0)
            return

        # disable calculate button
        self.ui.pushButton_2.setEnabled(False)

        start_date = pd.to_datetime(
            self.ui.dateEdit_1.date().toString("M/d/yyyy"))
        end_date = pd.to_datetime(
            self.ui.dateEdit_2.date().toString("M/d/yyyy"))
        pb_inc = (
            end_date - start_date
        ).days + 36  #number of items in the 2 loops in datapoints fxs

        if self.ui.radioButton_1.isChecked():
            option = "option1"
        elif self.ui.radioButton_2.isChecked():
            option = "option2"
        else:
            option = "option3"

        self.worker_thread = DataPointsWorkThread(data, start_date, end_date,
                                                  pb_inc, option)
        self.worker_thread.signal.connect(self.display_datapoints)
        self.worker_thread.signal_pb.connect(self.update_progressbar)
        self.worker_thread.start()

    def update_progressbar(self, pb_update):
        self.ui.progressBar_1.setValue(pb_update)

    # construct raw data dataframe from file data
    def prepare_data(self, delimiter, has_headers):

        if delimiter == "Tab Delimited":
            sep = "\t"
        elif delimiter == 'Comma Delimited':
            sep = ","
        elif delimiter == 'Pipe Delimited':
            sep = "|"

        if has_headers:  # data file has headers
            try:
                data = pd.read_csv(self.filename,
                                   skiprows=1,
                                   sep=sep,
                                   header=None)
            except AttributeError:
                return 0
        else:  # data file does not have headers
            try:
                data = pd.read_csv(self.filename, sep=sep, header=None)
            except AttributeError:
                return 0

        data.columns = ["a", "b", "c"]

        try:
            data['a'] = pd.to_datetime(data['a'])
        except ValueError:
            return 1

        try:
            data['b'] = pd.to_datetime(data['b'])
        except ValueError:
            return 2

        try:
            data['c'] = data['c'].replace('[\$,]', '',
                                          regex=True).astype(float)
        except ValueError:
            return 3

        return data

    # display dataframe with more specific headers
    def display_datapoints(self, dp_output):
        self.df = dp_output["df"]
        self.x = dp_output["x"]
        self.y = dp_output["y"]
        self.DOI = dp_output["DOI"]
        self.DOI_dollars = dp_output["DOI_dollars"]

        df = self.df
        x = self.x
        y = self.y
        DOI = self.DOI
        DOI_dollars = self.DOI_dollars

        # update progress bar
        self.ui.progressBar_1.setValue(100)

        # graph plot
        self.ui.graphicsView_1.canvas.ax.clear()  # clear if already drawn
        self.ui.graphicsView_1.canvas.ax.plot(x, y, '-', color="orange")
        self.ui.graphicsView_1.canvas.ax.set_xlabel('Time', fontsize=8.0)
        self.ui.graphicsView_1.canvas.ax.set_ylabel('Sum', fontsize=8.0)
        self.ui.graphicsView_1.canvas.draw()  # needed for the first drawing
        for ytick in self.ui.graphicsView_1.canvas.ax.get_yticklabels():
            ytick.set_fontsize(8.0)
        for xtick in self.ui.graphicsView_1.canvas.ax.get_xticklabels():
            xtick.set_fontsize(8.0)

        fmt = '${x:,.0f}'
        tick = mtick.StrMethodFormatter(fmt)
        self.ui.graphicsView_1.canvas.ax.yaxis.set_major_formatter(tick)

        self.ui.graphicsView_1.canvas.draw()  # needed for updated figures
        self.ui.graphicsView_1.show()
        self.ui.lineEdit_2.setText(DOI)
        self.ui.lineEdit.setText(DOI_dollars)

        # enable calculate button
        self.ui.pushButton_2.setEnabled(True)

        # table
        df.columns = ["Date Range Start", "Date Range End", "Sum"]
        model = PandasModel(df)
        self.ui.tableView_1.setModel(model)

    def run_regression(self):
        x = self.x
        y = self.y
        try:
            df = self.df
        except AttributeError:
            self.MessageBox(None, "No datapoints have been calculated.",
                            "Attribute Error", 0)
            return

        max_segments = int(self.ui.lineEdit_3.text())
        max_iter = int(self.ui.lineEdit_4.text())
        isnt_discretized = self.ui.radioButton_4.isChecked()

        # disable calculate button
        self.ui.pushButton_3.setEnabled(False)

        self.ui.progressBar_2.setRange(0, 0)
        self.worker_thread = RegressionWorkThread(x, y, df, max_segments,
                                                  max_iter, isnt_discretized)
        self.worker_thread.signal.connect(self.display_regression)
        self.worker_thread.start()

    def display_regression(self, regression_output):
        # instance variables for excel output
        self.df_output = regression_output["df"]
        self.df_regress_stats = regression_output["df_regress_stats"]
        self.df_anova = regression_output["df_anova"]
        self.df_coef = regression_output["df_coef"]
        self.plt = regression_output["plt"]

        # update progress bar
        self.ui.progressBar_2.setRange(0, 100)
        self.ui.progressBar_2.setValue(100)

        # graph plot
        self.ui.graphicsView_2.canvas.ax.clear()  # clear if already drawn
        self.ui.graphicsView_2.canvas.ax.plot(regression_output["x"],
                                              regression_output["y"],
                                              '-',
                                              color="orange")
        self.ui.graphicsView_2.canvas.ax.plot(regression_output["xHat"],
                                              regression_output["yHat"],
                                              '--',
                                              color="royalblue")
        self.ui.graphicsView_2.canvas.ax.set_xlabel('Time', fontsize=8.0)
        self.ui.graphicsView_2.canvas.ax.set_ylabel('Sum', fontsize=8.0)
        self.ui.graphicsView_2.canvas.draw()
        for ytick in self.ui.graphicsView_2.canvas.ax.get_yticklabels():
            ytick.set_fontsize(8.0)
        for xtick in self.ui.graphicsView_2.canvas.ax.get_xticklabels():
            xtick.set_fontsize(8.0)

        fmt = '${x:,.0f}'
        tick = mtick.StrMethodFormatter(fmt)
        self.ui.graphicsView_2.canvas.ax.yaxis.set_major_formatter(tick)

        self.ui.graphicsView_2.canvas.draw()
        self.ui.graphicsView_2.show()

        # provide number of segments from model
        self.ui.lineEdit_5.setText(regression_output["num_segments"])

        # provide function value from model
        self.ui.lineEdit_6.setText(regression_output["func_value"])

        # display regression statistics
        model_regress_stats = PandasModel(
            regression_output["df_regress_stats"])
        self.ui.tableView_2.setModel(model_regress_stats)

        # display ANOVA statistics
        model_anova = PandasModel(regression_output["df_anova"])
        self.ui.tableView_3.setModel(model_anova)

        # display coefficients table
        model_coef = PandasModel(regression_output["df_coef"])
        self.ui.tableView_4.setModel(model_coef)

        # enable calculate button
        self.ui.pushButton_3.setEnabled(True)

    def write_excel(self):
        try:
            df_output = self.df_output
        except AttributeError:
            self.MessageBox(None, "No datapoints have been calculated.",
                            "Attribute Error", 0)
            return

        df_regress_stats = self.df_regress_stats
        df_anova = self.df_anova
        df_coef = self.df_coef
        plt = self.plt

        # prompt for save file path and name, default is desktop
        desktop = os.path.join(os.path.join(os.path.expanduser('~')),
                               'Desktop')
        fileout, _ = QtWidgets.QFileDialog.getSaveFileName(
            None, "Save File", desktop, "Excel File (*xlsx)")

        if fileout:
            # append .xlsx to file name
            if fileout.endswith(".xlsx"):
                fileout = fileout
            else:
                fileout += ".xlsx"

            # split path into basepath and file name
            head, tail = os.path.split(fileout)

            # save figure to be overwritten each iteration in project folder
            plt.savefig("myplot.png", dpi=100)

            # rename column headers
            df_output = df_output.rename(index=str,
                                         columns={
                                             "C": "Sum",
                                             "col4": "Estimate (y-prediction)"
                                         })

            # write dataframes to an input excel file to be overwritten each iteration in project folder
            num_columns = len(df_output.columns)
            writer = pd.ExcelWriter('input.xlsx', engine='xlsxwriter')
            df_output.to_excel(writer, sheet_name='Sheet1', index=False)
            df_regress_stats.to_excel(writer,
                                      sheet_name='Sheet1',
                                      startrow=30,
                                      startcol=num_columns + 1,
                                      index=False)
            df_anova.to_excel(writer,
                              sheet_name="Sheet1",
                              startrow=38,
                              startcol=num_columns + 1,
                              index=False)
            df_coef.to_excel(writer,
                             sheet_name='Sheet1',
                             startrow=43,
                             startcol=num_columns + 1,
                             index=False)
            writer.save()

            # open input excel file, do formatting, add plot, save file as output
            wb = openpyxl.load_workbook("input.xlsx")
            ws = wb.active
            ws.merge_cells('A1:B1')
            ws.cell(row=1, column=1).value = "Service Date Range"
            img = openpyxl.drawing.image.Image("myplot.png")
            ws.add_image(img, 'M1')
            wb.save(fileout)
            wb.close()
Beispiel #23
0
from GUI import Ui_MainWindow
from PyQt5 import QtGui, QtWidgets

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    glFormat = QtGui.QSurfaceFormat()
    ui = Ui_MainWindow()
    ui.setupUi(glFormat, MainWindow)
    MainWindow.show()
    code = app.exec_()
    sys.exit(code)
Beispiel #24
0
class MyWindowClass(QMainWindow):
    def __init__(self, parent=None):
        super(self.__class__, self).__init__()
        self.car = None
        self.rps_counter = None

        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        self.ui.forwardBtn.clicked.connect(self.forward_clicked)
        self.ui.backBtn.clicked.connect(self.backward_clicked)
        self.ui.leftBtn.clicked.connect(self.left_clicked)
        self.ui.rightBtn.clicked.connect(self.right_clicked)
        self.ui.stopBtn.clicked.connect(self.stop_clicked)
        self.ui.startButton.clicked.connect(self.start_clicked)

        self.ui.actionOpen_Writer.triggered.connect(self.open_writer)
        self.ui.actionExit.triggered.connect(self.exit)
        self.ui.actionAbout.triggered.connect(self.about)

        self.img_left = self.ui.img_left
        self.img_right = self.ui.img_right
        self.img_center = self.ui.img_center

        self.camera_label = {
            'camera_r': self.img_left,
            'camera_c': self.img_center,
            'camera_l': self.img_right
        }

        self.sensor_label = {
            'left': self.ui.sensor_left,
            'center': self.ui.sensor_center,
            'right': self.ui.sensor_right
        }

        self.add_log("DrivingMatter GUI Started.")
        self.show_image()

    def open_writer(self):
        self.add_log("OpenWriter called")
        self.writer = Writer(self.car)
        self.writer.setWindowTitle('Driving Matter - Writer')
        self.writer.show()

    def exit(self):
        self.add_log("Exit called")

    def about(self):
        self.add_log("About called")

    def add_log(self, message):
        from datetime import datetime
        message = str(
            datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + ": " + message
        self.ui.logdata.appendPlainText(message)

        #scroll log textedit to bottom
        self.ui.logdata.verticalScrollBar().setValue(
            self.ui.logdata.verticalScrollBar().maximum())

    def load_car(self):
        ip, okPressed = QInputDialog.getText(self, "Car IP Address",
                                             "Enter IP Address",
                                             QLineEdit.Normal, "192.168.137.2")
        if okPressed:
            try:
                socket.inet_aton(ip)  # throw exception in invalid ip

                car_link = "ws://{}:{}".format(ip, "8000")

                action_link = "{}/action".format(car_link)
                state_link = "{}/state".format(car_link)

                self.add_log("Action Link: " + action_link)
                self.add_log("State Link: " + state_link)

                self.car = Car(action_link, url_state=state_link)
                self.rps_counter = RPSCounter()
                self.car.set_state_callback(self._handle_dataset_response)

                self.ui.startButton.setText('Started')
            except socket.error:
                pass  # leave the condition
        else:
            self.ui.startButton.setText('Start')
            self.ui.startButton.setEnabled(False)

    def stop_clicked(self):
        self.car.stop()

    def backward_clicked(self):
        self.add_log("Car::backward()")
        self.car.backward()

    def right_clicked(self):
        self.add_log("Car::right()")
        self.car.forwardRight()

    def left_clicked(self):
        self.add_log("Car::left()")
        self.car.forwardLeft()

    def forward_clicked(self):
        self.add_log("Car::forward()")
        self.car.forward()

    def start_clicked(self):
        global running
        running = True
        self.ui.startButton.setEnabled(False)
        self.ui.startButton.setText('Starting...')
        self.load_car()

    def show_image(self):
        qim = QtGui.QImage("../images/no-image.png")  # PNG only
        qim = qim.scaled(200,
                         200,
                         aspectRatioMode=QtCore.Qt.KeepAspectRatio,
                         transformMode=QtCore.Qt.SmoothTransformation)
        self.ui.img_left.setPixmap(QtGui.QPixmap.fromImage(qim))
        self.ui.img_right.setPixmap(QtGui.QPixmap.fromImage(qim))
        self.ui.img_center.setPixmap(QtGui.QPixmap.fromImage(qim))
        self.ui.img_left.adjustSize()

        self.add_log("Showing default images.")

    def _handle_dataset_response(self, data, ws):
        current_datavector = json.loads(data)

        pc_rps = self.rps_counter.get()

        #logger.debug("PC RPS: " + str(pc_rps) + "\n\nCar RPS: " + str(car_rps) + "\n\nTotal: " + str(total_requests))
        sensors = current_datavector['sensors']

        for key, value in sensors.items():
            self.sensor_label[key].setText(str(value))

            if value:
                self.sensor_label[key].setStyleSheet('color: red')
            else:
                self.sensor_label[key].setStyleSheet('color: green')

        camera_names = [
            key for key in current_datavector if key.startswith('camera')
        ]
        for name in camera_names:
            frame_data = current_datavector[name]  # [type, array, shape]

            frame = BytesIO(base64.decodestring(frame_data.encode("utf-8")))
            frame = np.asarray(Image.open(frame))

            qim = QtGui.QImage(
                frame.data, frame.shape[1], frame.shape[0], frame.strides[0],
                QImage.Format_RGB888)  # https://gist.github.com/smex/5287589
            qim = qim.scaled(200,
                             200,
                             aspectRatioMode=QtCore.Qt.KeepAspectRatio,
                             transformMode=QtCore.Qt.SmoothTransformation)

            self.camera_label[name].setPixmap(QtGui.QPixmap.fromImage(qim))
            self.camera_label[name].adjustSize()

            self.add_log("Received dataset. RPS: " + str(int(pc_rps)))
Beispiel #25
0
 def __init__(self):
     super(MyWork, self).__init__()
     self.ui = Ui_MainWindow()
     self.ui.setupUi(self)  #Calls GUI.py, loads the GUI
     self.show()
class ApplicationWindow(QtWidgets.QMainWindow):
    flag = 0

    def __init__(self):
        super(ApplicationWindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.actionOpen_Image.triggered.connect(self.OpenImage)
        self.ui.Combo1.currentTextChanged.connect(self.ChooseOperation)
        self.ui.comboBox_2.currentTextChanged.connect(self.KSpace)
        self.ui.comboBox.currentTextChanged.connect(self.Gradients)
        self.ui.Combo1.setCurrentIndex(0)
        self.widgets = [
            self.ui.InputImage1, self.ui.FourierInput1, self.ui.KSpace
        ]
        for i in range(len(self.widgets)):
            self.widgets[i].ui.histogram.hide()
            self.widgets[i].ui.roiBtn.hide()
            self.widgets[i].ui.menuBtn.hide()
            self.widgets[i].ui.roiPlot.hide()
        self.pen1 = pg.mkPen(color=(255, 0, 0))
        self.pen2 = pg.mkPen(color=(0, 0, 255))
        self.ui.pushButton.clicked.connect(self.ShowGraph)

    def ShowGraph(self):
        rand_Bz = np.random.randint(-3, 4, 20)
        const_Bx = [0] * 20
        const_By = [0] * 20
        const_Bz = [2] * 20
        nonUn_Bz = rand_Bz + const_Bz

        self.ui.withx.clear()
        self.ui.withy.clear()
        self.ui.withz.clear()

        self.ui.withz.plotItem.plot(nonUn_Bz, pen=self.pen1)
        self.ui.withz.setLabel('left', 'B', units='Tesla')
        self.ui.withz.setLabel('bottom', 'Z-axis')
        self.ui.withx.plotItem.plot(const_Bx, pen=self.pen2)
        self.ui.withx.setLabel('left', 'B', units='Tesla')
        self.ui.withx.setLabel('bottom', 'X-axis')
        self.ui.withy.plotItem.plot(const_By, pen=self.pen2)
        self.ui.withy.setLabel('left', 'B', units='Tesla')
        self.ui.withy.setLabel('bottom', 'Y-axis')

    def Gradients(self):
        var = np.arange(-1, 1, 0.1)
        if (str(self.ui.comboBox.currentText())) == 'Gradient Effect':
            print('Choose prope Gradient Coil')
        elif (str(self.ui.comboBox.currentText())) == 'Slice Selection':
            const_Bx = [0] * 20
            const_BxG = const_Bx + var
            self.ui.withx.clear()
            self.ui.withx.plotItem.plot(const_BxG, pen=self.pen2)
        elif (str(self.ui.comboBox.currentText())) == 'Phase Encoding':
            const_By = [0] * 20
            const_ByG = const_By + var
            self.ui.withy.clear()
            self.ui.withy.plotItem.plot(const_ByG, pen=self.pen2)
        elif (str(self.ui.comboBox.currentText())) == 'Frequency Encoding':
            const_Bz = [2] * 20
            rand_Bz = np.random.randint(-3, 4, 20)
            nonUn_Bz = rand_Bz + const_Bz
            const_BzG = nonUn_Bz + var
            self.ui.withz.clear()
            self.ui.withz.plotItem.plot(const_BzG, pen=self.pen1)

    def OpenImage(self):
        self.filePath = QtWidgets.QFileDialog.getOpenFileName(
            None, 'Open file',
            'F:\25-9\Downloads\talta tebya\Second Semester\DSP\Task2 Equalizer\TASK 2'
        )
        self.image = cv.cvtColor(cv.imread(self.filePath[0]),
                                 cv.COLOR_BGR2GRAY)
        self.ui.InputImage1.show()
        self.ui.InputImage1.setImage(self.image.T)
        self.flag = 1
        self.dft = np.fft.fft2(self.image)
        self.real = np.real(self.dft)
        self.imaginary = np.imag(self.dft)
        self.magnitude = np.abs(self.dft)
        self.phase = np.angle(self.dft)

        #K-Space Image
        self.fourier = np.fft.fft2(self.image)
        self.fourier_shift = np.fft.fftshift(self.fourier)
        self.k = np.abs(20 * np.log10(self.fourier_shift))

        #Gibb's ringing
        self.err1 = self.fourier_shift[:, 112:112 + 32]
        self.img_back1 = np.abs(np.fft.ifft2(self.err1, s=[256, 256]))

        #Ghosting
        self.err2 = self.fourier_shift.copy()
        self.err2[:, ::2] = 0.8 * self.err2[:, ::2]
        self.img_back2 = np.abs(np.fft.ifft2(self.err2))

        #T2* blurring
        self.T2star = 20  # milliseconds
        self.Ttotal = 100  # time it takes to "read" k-space
        self.N = self.fourier_shift.shape[0]  # number of pixels
        self.err3 = self.fourier_shift.copy()
        for i in range(self.err3.shape[1]):
            self.err3[:, i] = self.err3[:, i] * np.exp(
                -np.linspace(0, self.Ttotal, self.N) / self.T2star)
        self.img_back3 = np.abs(np.fft.ifft2(self.err3))
        plt.imshow(self.img_back3, cmap='gray')

    def ChooseOperation(self):
        if (str(self.ui.Combo1.currentText())) == 'FT Magnitude':
            if (self.flag == 0):
                msg = QMessageBox()
                msg.setWindowTitle("Warning")
                msg.setText("Please,choose image first")
                msg.setIcon(QMessageBox.Warning)
                x = msg.exec_()
            else:
                self.ui.FourierInput1.show()
                self.ui.FourierInput1.setImage(
                    np.fft.fftshift(20 * np.log(self.magnitude.T)))
        if (str(self.ui.Combo1.currentText())) == 'FT Phase':
            if (self.flag == 0):
                msg = QMessageBox()
                msg.setWindowTitle("Warning")
                msg.setText("Please,choose image first")
                msg.setIcon(QMessageBox.Warning)
                x = msg.exec_()
            else:
                self.ui.FourierInput1.show()
                self.ui.FourierInput1.setImage(self.phase.T)
        if (str(self.ui.Combo1.currentText())) == 'FT Real Component':
            if (self.flag == 0):
                msg = QMessageBox()
                msg.setWindowTitle("Warning")
                msg.setText("Please,choose image first")
                msg.setIcon(QMessageBox.Warning)
                x = msg.exec_()
            else:
                self.ui.FourierInput1.show()
                self.ui.FourierInput1.setImage(20 * np.log(self.real.T))
        if (str(self.ui.Combo1.currentText())) == 'FT Imaginary Component':
            if (self.flag == 0):
                msg = QMessageBox()
                msg.setWindowTitle("Warning")
                msg.setText("Please,choose image first")
                msg.setIcon(QMessageBox.Warning)
                x = msg.exec_()
            else:
                self.ui.FourierInput1.show()
                self.ui.FourierInput1.setImage(self.imaginary.T)
        if (str(self.ui.Combo1.currentText())) == 'Select an Option':
            print('Please select a proper option')

    def KSpace(self):
        if (str(self.ui.comboBox_2.currentText())) == 'Show K-Space Image':
            self.ui.KSpace.show()
            self.ui.KSpace.setImage(self.k.T)
        elif (str(self.ui.comboBox_2.currentText())) == "Show Gibb's Ringing":
            self.ui.KSpace.show()
            self.ui.KSpace.setImage(self.img_back1.T)
            msg = QMessageBox()
            msg.setWindowTitle("Definition")
            msg.setText(
                "Gibb's ringing occurs when the frequencies that are sampled in k-space are not sufficiently high "
            )
            s = msg.exec_()
        elif (str(self.ui.comboBox_2.currentText())) == 'Show Ghosting Effect':
            self.ui.KSpace.show()
            self.ui.KSpace.setImage(self.img_back2.T)
            msg = QMessageBox()
            msg.setWindowTitle("Definition")
            msg.setText(
                "Ghosting happens when even and odd k-space lines are intensity modulated differently"
            )
            s = msg.exec_()
        elif (str(self.ui.comboBox_2.currentText())) == 'Show T2* Blurring':
            self.ui.KSpace.show()
            self.ui.KSpace.setImage(self.img_back3.T)
            msg = QMessageBox()
            msg.setWindowTitle("Definition")
            msg.setText(
                "This particular artefact is due to the fact that when we acquire k-space data, the signal that we base our measurement on decays over time, with a time constant called T2*"
            )
            s = msg.exec_()
        if (str(self.ui.comboBox_2.currentText())) == 'K-Space':
            print('Please select a proper option')
class Mainwindow(QtWidgets.QMainWindow,
                 Ui_MainWindow):  #Ventana principal de la GUI
    def __init__(self, *args, **kwargs):
        #Configuration
        QtWidgets.QMainWindow.__init__(self, *args,
                                       **kwargs)  #Inicializar clases heredadas
        self.ui = Ui_MainWindow()  #Inicializamos la ventanan de la GUI
        self.ui.setupUi(self)
        #Set style
        try:
            self.real_path = os.path.dirname(os.path.abspath(__file__))
            with open(self.real_path + '/GUI_style.css') as f:
                self.setStyleSheet(f.read())
        except:
            self.real_path = os.path.dirname(sys.executable)
            with open(self.real_path + '/GUI_style.css') as f:
                self.setStyleSheet(f.read())
        #Arrow
        icon = QtGui.QIcon()
        arrow = self.real_path + '/Arrow.jpg'
        icon.addPixmap(QtGui.QPixmap(arrow), QtGui.QIcon.Normal,
                       QtGui.QIcon.Off)
        icon.addPixmap(QtGui.QPixmap(arrow), QtGui.QIcon.Normal,
                       QtGui.QIcon.On)
        self.ui.toolButton_arrow.setIcon(icon)

        #Properties
        self.main_dir = ''
        self.files = []
        self.files_order = []
        self.files_f = []
        self.filter = ["Python (*.py)", "Fortran files (*.f90)"]
        self.fcomments = 'before'
        self.terminal = True
        self.lib = ''
        self.new_folder = ''
        self.folder_path = ''
        self.interface = ''
        self.py_interface = ''
        self.module_list = []
        self.window_fmodule = ffiles.Window_fmodule(self_fparser=self)
        self.window_options = ffiles.Window_options(self_fparser=self)
        self.terminal_text = ffiles.Terminal(self_fparser=self)
        self.makefile = make.Makefile(self_fparser=self)
        self.ui.actionOpen_Directory.setShortcut("Ctrl+O")
        self.ui.actionOpen_Files.setShortcut("Ctrl+F")
        self.ui.actionOptions.setShortcut("Ctrl+T")
        self.ui.actionClear.setShortcut("Ctrl+W")

        #Connect signals
        #Use .connect(lambda: function(args)) to send extra arguments through the function
        self.ui.menuFile.triggered[QtWidgets.QAction].connect(self.action)
        self.ui.toolButton_arrow.clicked.connect(
            lambda: ffiles.select_ffiles(self))
        self.ui.pushButton_fparser.clicked.connect(
            lambda: ffiles.fortran_parser(self))
        # self.ui.combobox.signal.connect(lambda: make.function(self.ui,self.makefile))
        #self.ui.pushButton_makeOK.clicked.connect(lambda: make.selectOS(self.ui))
        self.ui.comboBox_makeFC.activated.connect(self.makefile.fcompiler)
        self.ui.pushButton_searchFC.clicked.connect(self.makefile.searchFC)
        self.ui.toolButton_lib.clicked.connect(self.makefile.searchLib)
        #self.ui.pushButton_makeOK.clicked.connect(self.makefile.properties)
        self.ui.pushButton_makeOK.clicked.connect(self.makefile.runmake)

    def action(self, selected_action):
        if selected_action.text() == 'Open Files':
            ffiles.open_files(self)
        elif selected_action.text() == 'Open Folder':
            ffiles.open_folder(self)
        elif selected_action.text() == 'Options':
            ffiles.select_options(self)
        elif selected_action.text() == 'Clear':
            ffiles.clear(self)
Beispiel #28
0
class StartQT4(QtGui.QMainWindow): ### generated class
    mcu_com = communication.MCUcomm()

    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)

        ### link the PyQt generated file to a specific method (methods are defined below)###
        ##################<Buttons>#####################################################################
        self.ui.pushButton_connect.clicked.connect(self.connect)
        self.ui.pushButton_disconnect.clicked.connect(self.disconnect)

        self.ui.pushButton_ventilationFanON.clicked.connect(self.ventilationFanON)
        self.ui.pushButton_ventilationFanOFF.clicked.connect(self.ventilationFanOFF)
        self.ui.pushButton_circulationFanON.clicked.connect(self.circulationFanON)
        self.ui.pushButton_circulationFanOFF.clicked.connect(self.circulationFanOFF)
        self.ui.pushButton_panelLightON.clicked.connect(self.panelLightON)
        self.ui.pushButton_panelLightOFF.clicked.connect(self.panelLightOFF)
        self.ui.pushButton_humidifierON.clicked.connect(self.humidifierON)
        self.ui.pushButton_humidifierOFF.clicked.connect(self.humidifierOFF)

        self.ui.pushButton_growLightON.clicked.connect(self.growLightON)
        self.ui.pushButton_growLightOFF.clicked.connect(self.growLightOFF)
        self.ui.pushButton_heaterON.clicked.connect(self.heaterON)
        self.ui.pushButton_heaterOFF.clicked.connect(self.heaterOFF)
        self.ui.pushButton_waterPumpON.clicked.connect(self.waterPumpON)
        self.ui.pushButton_waterPumpOFF.clicked.connect(self.waterPumpOFF)
        self.ui.pushButton_airPumpON.clicked.connect(self.airPumpON)
        self.ui.pushButton_airPumpOFF.clicked.connect(self.airPumpOFF)
        ##################</Buttons>####################################################################

    #############<Methods_for_buttons>####################################################
    def connect(self):
        self.mcu_com.openMCU(str(self.ui.lineEdit.text()))
        time.sleep(2) # wait until arduino's bootloader done loading (arduino tend to auto restart each time new connection is made)
        self.periodic_sampling()

    def disconnect(self):
        self.mcu_com.closeMCU()

    def ventilationFanON(self):
        self.mcu_com.ventilationFanON()

    def ventilationFanOFF(self):
        self.mcu_com.ventilationFanOFF()

    def circulationFanON(self):
        self.mcu_com.circulationFanON()

    def circulationFanOFF(self):
        self.mcu_com.circulationFanOFF()

    def panelLightON(self):
        self.mcu_com.panelLightON()

    def panelLightOFF(self):
        self.mcu_com.panelLightOFF()

    def humidifierON(self):
        self.mcu_com.humidifierON()

    def humidifierOFF(self):
        self.mcu_com.humidifierOFF()

    def growLightON(self):
        self.mcu_com.growLightON()

    def growLightOFF(self):
        self.mcu_com.growLightOFF()

    def heaterON(self):
        self.mcu_com.heaterON()

    def heaterOFF(self):
        self.mcu_com.heaterOFF()

    def waterPumpON(self):
        self.mcu_com.waterPumpON()

    def waterPumpOFF(self):
        self.mcu_com.waterPumpOFF()

    def airPumpON(self):
        self.mcu_com.airPumpON()

    def airPumpOFF(self):
        self.mcu_com.airPumpOFF()
    #############</Methods_for_buttons>####################################################

###<display_stuffs>###
    def updateDisplays(self, a, b, c, d, e, f, g, h, i, j):
        self.ui.lcdNumber_windowSwitch.display(a)
        self.ui.lcdNumber_shellSwitch.display(b)
        self.ui.lcdNumber_waterTemperature.display(c)
        self.ui.lcdNumber_waterConductivity.display(d)
        self.ui.lcdNumber_waterpH.display(e)
        self.ui.lcdNumber_lightIntensity.display(f)
        self.ui.lcdNumber_lightPAR.display(g)
        self.ui.lcdNumber_airTemperature.display(h)
        self.ui.lcdNumber_airHumidity.display(i)
        self.ui.lcdNumber_airCO2.display(j)
###<display_stuffs>###


#######<thread>###
    def periodic_sampling_scheduler(self):
        if self.mcu_com.mcuStatus() == True:
            threading.Timer(1, self.periodic_sampling).start()  # update displays every one second


    def periodic_sampling(self):
        if self.mcu_com.mcuStatus() == True:
            receivedData = self.mcu_com.getAllSensor()
            splitData = receivedData.split(',')
            a = (splitData[0])
            b = (splitData[1])
            c = (splitData[2])
            d = (splitData[3])
            e = (splitData[4])
            f = (splitData[5])
            g = (splitData[6])
            h = (splitData[7])
            i = (splitData[8])
            j = (splitData[9])
            self.updateDisplays(a, b, c, d, e, f, g, h, i, j)
        self.periodic_sampling_scheduler()
 def __init__(self, parent=None):
     QtGui.QWidget.__init__(self, parent)
     self.ui = Ui_MainWindow()
     self.ui.setupUi(self)
     self.ui.PushButtonAddGold.clicked.connect(self.browse_folder)
class MyForm(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.PushButtonAddGold.clicked.connect(self.browse_folder)

    def browse_folder(self):
        app = QtGui.QMainWindow()
        myapp = MyWindow(self)
        myapp.show()

    def choosen(self, factory):

        directory = QtGui.QFileDialog.getOpenFileName(self)
        print(directory)
        f = open(directory)
        l = list(f.readlines())

        instance = factory.create(l)
        #self.graphvizdraw(instance)
        self.qtdraw(instance)

    def graphvizdraw(self, instance):
        d = draw()
        d.drawGraph(instance.edges, instance.tokens)

        label = self.ui.label_picture

        path = os.path.abspath('test-output/round-table.gv.pdf')
        pdf2png.gs_pdf_to_png(path, 70)
        path2 = os.path.abspath('test-output/round-table.gv.png')

        #pixmap = QtGui.QPixmap(path2)
        #label.setPixmap(pixmap)
        myPixmap = QtGui.QPixmap(path2)
       # myScaledPixmap = myPixmap.scaled(label.size())
        label.setPixmap(myPixmap)

        label.show()

    def qtdraw(self, instance):

        pixmap = QtGui.QPixmap(QtCore.QSize(400,400))
        pixmap.fill(QtGui.QColor(200,0,0))
        painter = QtGui.QPainter (pixmap)
        #gradient = QtGui.QLinearGradient(QtCore.QPoint(pixmap.rect().topLeft()),
        #                             QtCore.QPoint(pixmap.rect().bottomLeft()))
        print("painter kész")
        #gradient.setColorAt(0, QtCore.Qt.blue)
        #gradient.setColorAt(0.4, QtCore.Qt.cyan)
        #gradient.setColorAt(1, QtCore.Qt.green)

        #brush = QtGui.QBrush(gradient)
        #painter.fillRect(QtCore.QRectF(0,0,400,400), brush)
        #painter.drawText(QtCore.QRectF(0,0,400,400), QtCore.Qt.AlignCenter,
        #                  "This is az image created with QPainter and QPixmap")

        painter.setBrush(QtGui.QColor(200,200,0))
        painter.setBackground(QtGui.QColor(200,0,0))
        #painter.drawRect(110,15,540,60)
        #painter.drawEllipse(QtCore.QPoint(200, 400), 150, 40)
        painter.drawArc(20,350, 150, 40, 16*0, 16*180)
        del painter
        print("rajzoltam")
        pixmap.save("output.jpg")
        #print("mentve")

        label = self.ui.label_picture
        label.setPixmap(pixmap)
        label.show()
Beispiel #31
0
class ApplicationWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super(ApplicationWindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.setFixedSize(1500, 930)
        
    ##############  UI control lists  ##############
        self.imageViews = [self.ui.graphicsView , self.ui.graphicsView_2 ] 
        self.legend = [0, 0, 0] # guard for legend overaddition

        for image in self.imageViews : ## hide unwanted options
            image.ui.histogram.hide()
            image.ui.roiBtn.hide()
            image.ui.menuBtn.hide()
            image.ui.roiPlot.hide()

    ############# initialize fourier #############
        self.originalImage0 = cv.cvtColor(cv.imread('images/Brain2.png'),cv.COLOR_BGR2GRAY)
        #plot original
        self.imageViews[0].show()
        self.imageViews[0].setImage(self.originalImage0.T)

        #plot fourier
        self.imageViews[1].show()
        self.imageViews[1].setImage(fourier(self.originalImage0).T)
    ####################################
        #self.axes1 = self.ui.graphicsView1.figure.add_subplot(111, title="$M_x/M_o$ vs time")
        #self.axes2 = self.ui.graphicsView2.figure.add_subplot(111)
        #self.axes3 = self.ui.graphicsView3.figure.add_subplot(111)
        
    ##############  UI Signals  ##############
        self.ui.pushButton.clicked.connect(lambda: self.plotEffect())
        self.ui.pushButton_2.clicked.connect(lambda : self.plotFourier())
        
    ##########################################
    

    

    def plotFourier(self) :
        
        """[summary] : plots : original image, it's fourier transform
        """     
        #Read the image file 
        fname = QtGui.QFileDialog.getOpenFileName( self, 'choose the image', os.getenv('HOME') ,"Images (*.png *.xpm *.jpg)" )
        self.path = fname[0] 
        #Assertion for path errors
        if self.path =="" :
            return
        #convert image to grey Scale
        self.originalImage = cv.cvtColor(cv.imread(self.path),cv.COLOR_BGR2GRAY)
        #plot original
        self.imageViews[0].show()
        self.imageViews[0].setImage(self.originalImage.T)

        #plot fourier
        self.imageViews[1].show()
        self.imageViews[1].setImage(fourier(self.originalImage).T)
        return None
    
    


    def plotEffect(self):
        print("Drawing curves")
            
        B = 1.5
        BPositive = 2.5
        BNegative = 0.5
        gyroRatio = 42
        w = gyroRatio * B
        wPositive = gyroRatio * BPositive
        wNegative = gyroRatio * BNegative
        T1 = 490/1000
        T2 = 43/1000
        t = np.arange(start=0, stop=10, step=0.0001)

        omega = 2*np.pi*w*t
        omegaPositive = 2*np.pi*wPositive*t + np.pi/8
        omegaNegative = 2*np.pi*wNegative*t - np.pi/8


        Mx = np.exp(-1*t/T2)*np.sin(omega)
        MxPositive = np.exp(-1*t/T2)*np.sin(omegaPositive)
        MxNegative = np.exp(-1*t/T2)*np.sin(omegaNegative)


        My = np.exp(-1*t/T2)*np.cos(omega)
        MyPositive = np.exp(-1*t/T2)*np.cos(omegaPositive)
        MyNegative = np.exp(-1*t/T2)*np.cos(omegaNegative)


        Mxy = np.sqrt(Mx**2 + My**2)
        MxyPositive = np.sqrt(MxPositive**2 + MyPositive**2)
        MxyNegative = np.sqrt(MxNegative**2 + MyNegative**2)
        
        self.axes1 = self.ui.graphicsView1.figure.add_subplot(111, title="$M_x/M_o$ vs time",xlabel="time",ylabel="$M_x/M_o$")
        self.axes1.plot(t[:1000], Mx[:1000], 'r', label="No Noise")
        self.axes1.plot(t[:1000], MxPositive[:1000], 'b', label="Positive Noise")
        self.axes1.plot(t[:1000], MxNegative[:1000], 'y', label="Negative Noise")
        if self.legend[0] == 0:
            self.axes1.legend()
            self.legend[0] += 1


        self.axes2 = self.ui.graphicsView2.figure.add_subplot(111,title="$M_y/M_o$ vs time",xlabel="time",ylabel="$M_y/M_o$")
        self.axes2.plot(t[:1000], My[:1000], 'r', label="No Noise")
        self.axes2.plot(t[:1000], MyPositive[:1000], 'b', label="Positive Noise")
        self.axes2.plot(t[:1000], MyNegative[:1000], 'y', label="Negative Noise")
        if self.legend[1] == 0:
            self.axes2.legend()
            self.legend[1] = 1

        self.axes3 = self.ui.graphicsView3.figure.add_subplot(111,title="$M_{xy}$ in X-Y Plane",xlabel="$M_x/M_o$",ylabel="$M_y/M_o$")
        self.axes3.plot(Mx, My, 'r', label="No Noise")
        self.axes3.plot(MxPositive, MyPositive, 'b', label="Positive Noise")
        self.axes3.plot(MxNegative, MyNegative, 'y', label="Negative Noise")
        if self.legend[2] == 0:
            self.axes3.legend()
            self.legend[2] = 1

        self.axes1.figure.canvas.draw()
        self.axes2.figure.canvas.draw()
        self.axes3.figure.canvas.draw()
 def __init__(self, parent=None):
     QWidget.__init__(self, parent)
     self.ui = Ui_MainWindow()
     self.ui.setupUi(self)
     self.setInputStrings()
     self.ui.buttonCheck.clicked.connect(self.clickMethod)
Beispiel #33
0
class mywindow(QtWidgets.QMainWindow):
    files = ""

    CURENT = 0

    def __init__(self):
        super(mywindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.setAcceptDrops(True)

        self.ui.pushB_Init2.clicked.connect(self.pushB_Init2)
        self.ui.pushB_Init12.clicked.connect(self.pushB_Init12)
        self.ui.pushB_Connect.clicked.connect(self.pushB_Connect)

        self.ui.pushB_Restart.clicked.connect(self.pushB_Restart)

        #self.ui.actionSend.triggered.connect(self.MenuSendClicked)

        #self.ui.label_1.clicked.connect(self.label_1)
        #self.ui.actionExit.triggered.connect(self.MenuExitClicked)
        #self.ui.pushButtonExit.clicked.connect(self.MenuExitClicked)
        #self.ui.pushButton.clicked.connect(self.InsertProg)
        #self.ui.tableWidget.cellClicked[int, int].connect(self.clickedRowColumn)

    def pushB_Init12(self):
        print("pushB_Init12")

        return True

    def pushB_Init2(self):
        print("pushB_Init2")

        return True

    def pushB_Connect(self):
        print("pushB_Connect")
        return True

    def pushB_Restart(self):
        print("pushB_Restart")
        return True

    def label_1(self):
        print("label_1")
        return True

    def dragEnterEvent(self, e):
        if e.mimeData().hasUrls:
            e.accept()
        else:
            e.ignore()

    def dragMoveEvent(self, e):
        if e.mimeData().hasUrls:
            e.accept()
        else:
            e.ignore()

    def dropEvent(self, e):
        f = e.mimeData().urls()
        mywindow.files = f[0].toString()
        print(mywindow.files)
        if mywindow.files[-3:] == "mp4":
            print("кто это?")
Beispiel #34
0
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
from GUI import Ui_MainWindow as UIM

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = UIM()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())
class ApplicationWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super(ApplicationWindow, self).__init__()

        self.ui = Ui_MainWindow()

        #intialize memebers of class plot_data that contains all the functions
        #and the variables needed for plotting to avoid repeativness
        self.Ugraph_1 = Plot_Data()

        #Empty arrays used in singular-import function
        self.Empty_X = []
        self.Empty_Y = []

        #Toggles for the exception handling of pressing start button and crashing before any graph is drawn, used in import
        self.HasEntered1stView = 0

        pg.setConfigOption('background', 'w')

        self.ui.setupUi(self)

        self.ui.StartButton.clicked.connect(self.Startplot)

        self.ui.StopButton.clicked.connect(self.Stop_1)

        self.ui.HideButton.clicked.connect(self.Hide)

        self.ui.ExitButton.clicked.connect(self.Exit)

        self.ui.EmptyButton.clicked.connect(self.Empty)

    def Plot_1(self):
        if self.Ugraph_1.Plot_Stop == 1 and self.HasEntered1stView == 1:
            self.Ugraph_1.Start()
            self.Startplot()
        elif self.HasEntered1stView == 1:
            self.Ugraph_1.Start()

    def Stop_1(self):
        self.Ugraph_1.Stop()

    def Graph1(self):
        #print(self.Ugraph_1.data_Y)
        #(self.Ugraph_1.data_X)

        self.ui.GraphicsView.plot(self.Ugraph_1.data_X,
                                  self.Ugraph_1.data_Y,
                                  pen='r')

        if len(self.Ugraph_1.data_X) > 2:
            self.ui.GraphicsView.setXRange(
                self.Ugraph_1.data_X[-1] -
                (self.Ugraph_1.data_X[1] - self.Ugraph_1.data_X[0]) * 100,
                self.Ugraph_1.data_X[-1])
            min_y = np.amin(self.Ugraph_1.data_Y)
            max_y = np.amax(self.Ugraph_1.data_Y)
            self.ui.GraphicsView.plotItem.getViewBox().setLimits(
                xMin=self.Ugraph_1.data_X[0],
                xMax=self.Ugraph_1.data_X[-1],
                yMin=min_y - min_y * 0.1,
                yMax=max_y + max_y * 0.1)

        QtCore.QCoreApplication.processEvents()
        #self.Ugraph_1.data_stop = self.Ugraph_1.data_stop + 10S
        # if self.Ugraph_1.data_stop >= len(self.Ugraph_1.data_X):
        #     self.Ugraph_1.data_stop = 0
        #     self.Ugraph_1.Stop()

    def Hide(self):
        self.Ugraph_1.Stop()
        self.ui.GraphicsView.clear()

    def Empty(self):
        self.Hide()
        self.Ugraph_1.Empty()

        self.HasEntered1stView = 0
        self.Ugraph_1.GraphIsWav = 0

    def Startplot(self):
        self.Ugraph_1.Plot_Stop = 0
        self.getdatafromserial()

    def getdatafromserial(self):

        threshold = 514.0
        oldvalue = 0
        newvalue = 0

        reading123 = 0
        oldmillis = 0
        newmillis = 0
        timings = [0] * 16

        self.HasEntered1stView = 1

        #insert ur COM here
        ser = Serial('COM15')
        ser.flushInput()

        while self.Ugraph_1.Plot_Stop == 0:
            try:
                ser_bytes = ser.readline()
                decoded_bytes = float(ser_bytes[0:len(ser_bytes) -
                                                2].decode("utf-8"))
            except:
                print("Keyboard Interrupt")
                break

            oldvalue = newvalue
            newvalue = 0

            for i in range(16):  # Average over 16 measurements
                newvalue += decoded_bytes

            newvalue = newvalue / 16

            self.Ugraph_1.data_X.append(
                reading123
            )  #self.Ugraph_1.data_X.append((time.strftime("%H:%M:%S", time.localtime()))) #np.append(self.Ugraph_1.data_X,((time.strftime("%H:%M:%S", time.localtime()))))
            reading123 += 1
            self.Ugraph_1.data_Y.append(
                newvalue)  #np.append(self.Ugraph_1.data_Y,newvalue)
            self.Graph1()

            # find triggering edge
            if oldvalue < threshold and newvalue >= threshold:
                oldmillis = newmillis
                newmillis = time.time() * 1000
                # fill in the current time difference  a ringbuffer
                timings.append((int)(newmillis - oldmillis))
                if len(timings) > 16:
                    timings.pop(0)  #filling queue of time differences
                totalmillis = 0
                # calculate average of the last 16 time differences
                for i in range(16):
                    totalmillis += timings[i]

                # calculate heart rate
                heartrate = 60000 // (totalmillis / 16)

                if heartrate > 40 and heartrate < 130:
                    print(heartrate)
                else:
                    print("Measuring Heart rate")

            QtCore.QCoreApplication.processEvents()

    def Exit(self):
        sys.exit()