Código: Interfaz (Ejecución) - AaroniSalinas/ProyectoFinal GitHub Wiki

En este programa se realizan las llamadas a función necesarias para la actualización de la interfaz gráfica.

Librerías

import os
import datetime
import sys
from PyQt5.QtWidgets import QApplication, QDialog, QTableWidgetItem
from PyQt5 import QtGui, QtCore
from latas import *
from PyQt5.QtCore import QDate, QTime, QDateTime, Qt
from Final3 import *
import numpy as np

Conexión web

myAPI = "6Y2UK5ORG1Z4BLWL"
anterior=1
import requests

def web(self,u,i,a):
        enviar=requests.get("https://api.thingspeak.com/update?api_key=6Y2UK5ORG1Z4BLWL&field1="+ str(u)+"&field2="+ str(i)+"&field3="+ str(a))

Funciones de botones

class Ui_Dialog(QtWidgets.QDialog,Ui_Dialog):

Inicialización

    def __init__(self, *args, **kwargs):
        QtWidgets.QApplication.__init__(self, *args, **kwargs)
        self.setupUi(self)
        self.datos= []
        self.label.setFont(QtGui.QFont('SansSerif', 10))
        self.label.setText("Reciclador")           
        self.Acelerometro.clicked.connect(lambda:  self.pantallaAce("Acelerometro"))
        self.Inductivo.clicked.connect(lambda:  self.pantallaInd("Sensor Inductivo"))
        self.Ultrasonico.clicked.connect(lambda:  self.pantallaUltra("Sensor Ultrasonico"))

Actualizar pantalla de Acelerómetro

    def pantallaAce(self,texto):   
        self.label.setFont(QtGui.QFont('SansSerif', 10))
        self.label.setText(texto)
        now = QDate.currentDate()
        tiempo = QTime.currentTime()
        self.inicio(str(Acelerometro()),now.toString(Qt.ISODate),tiempo.toString(Qt.DefaultLocaleLongDate))
        self.agregar()

Actualizar pantalla de Inductivo

    def pantallaInd(self,texto):
        self.label.setFont(QtGui.QFont('SansSerif', 10))
        self.label.setText(texto)
        now = QDate.currentDate()
        tiempo = QTime.currentTime()
        if Inductivo()==0:
            self.inicio("Metal",now.toString(Qt.ISODate),tiempo.toString(Qt.DefaultLocaleLongDate))
            self.agregar()
            self.web(0,induc,0)
            return 0
        elif Inductivo()==1:  
            self.inicio("No metal",now.toString(Qt.ISODate),tiempo.toString(Qt.DefaultLocaleLongDate))
            self.agregar()
            self.web(0,induc,0)
            return 1
        else:
            self.inicio("No hay nada",now.toString(Qt.ISODate),tiempo.toString(Qt.DefaultLocaleLongDate))
            self.agregar()
            self.web(0,induc,0)

Actualizar pantalla ultrasónico

    def pantallaUltra(self,texto):
        self.label.setFont(QtGui.QFont('SansSerif', 10))
        self.label.setText(texto)        
        now = QDate.currentDate()
        tiempo = QTime.currentTime()
        self.web(ultra,0,0)
        self.inicio(str(Ultrasonico()),now.toString(Qt.ISODate),tiempo.toString(Qt.DefaultLocaleLongDate))
        self.agregar()

Actualizar Tablas

    def inicio(self,uno,dos,tres):
    	global anterior
        if control==anterior:
            self.datos.append((uno,dos,tres))
        else:
            anterior=control
            self.datos=[]
            self.Tabla.clearContents()
            self.datos.append((uno,dos,tres))

    def agregar(self):
        fila =0
        for registro in self.datos:
            columna=0
            for elemento in registro:	
                celda= QTableWidgetItem(elemento)
                self.Tabla.setItem(fila,columna,celda)
                columna+=1
            fila+=1

Main

if __name__ == "__main__":
    #import sys
    app = QtWidgets.QApplication([])
    #Dialog = QtWidgets.QDialog()
    ui = Ui_Dialog()
    ui.show()
    #ui.setupUi(Dialog)
    #Dialog.show()
    app.exec_()