def __init__(self, parent=None):
        super(FuelPlanner, self).__init__(parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.msgBox = QtWidgets.QMessageBox()
        #Pesos
        self.MRW = 106000
        self.MTOW = 105000
        self.MZFW = 87000
        self.SOW = 61252
        self.MLW = 95300
        #inicializando aeronave vacia
        self.ZFW = 61252
        self.TOW = 61252
        #inicializando combustible
        self.combustible_minimo_vuelo = 8040
        self.combustible_maximo = 24649
        self.combustible_reserva_final = 4000

        self.tiempo_reserva_final = timedelta(minutes=45)
        self.tiempo_extra = timedelta()

        self.ui.timeEdit_reserva_final.setTime(QtCore.QTime(0, 45))
        self.ui.lineEdit_num_app.setText(
            "650")  #por defecto una sola app instrumental
        self.ui.comboBox_num_app.currentIndexChanged.connect(
            self.calcular_combustible_apps)
        self.ui.spinBox_extra.valueChanged.connect(self.calcular_tiempo_extra)
        self.ui.pushButton.clicked.connect(self.calcular)
Ejemplo n.º 2
0
class TestUI(QtGui.QMainWindow):
  """ This is the user interface.
  """
  def __init__(self, parent=None):
    QtGui.QWidget.__init__(self, parent)
    self.ui = Ui_MainWindow()
    self.ui.setupUi(self)
class ControlVentanaMain(QtGui.QMainWindow,Ui_MainWindow):
#class ControlVentanaMain(QtGui.QWidget,Ui_MainWindow):

    def __init__(self, parent=None):
        super(ControlVentanaMain, self).__init__(parent)
        self.ui =  Ui_MainWindow()
        self.ui.setupUi(self)

        self.setWindowTitle("Navegador")
        QtCore.QObject.connect(self.ui.go_button, QtCore.SIGNAL('clicked()'), self.openUrl)
        QtCore.QObject.connect(self.ui.facebookshare, QtCore.SIGNAL('clicked()'), self.compartir)
        QtCore.QObject.connect(self.ui.input_url, QtCore.SIGNAL("returnPressed()"), self.ui.go_button.click)


        self.ui.input_url.setText("http://www.google.es/")#<-- para que aparezca la primera vez en donde estamos.

    def openUrl(self):
        url = str(self.ui.input_url.text())#<-- obtengo de qt lo que ha escrito el usuario
        o = ReformateoUrl(url) #<-- creo el objeto o pasandole la url para q la use luego el formateo
        o.formatear() #<-- ejecuto el reformateo
        url = o.url #<-- le seteo el nuevo valor del atributo url del objeto o ya formateado

        self.ui.webView.setFocus()
        #self.ui.webView.load(QtCore.QUrl(url))
        self.ui.webView.setUrl(QtCore.QUrl(url))#<-- navegamos a la url indicada
        #print url
        self.ui.input_url.setText(url) #<-- ponemos la nueva url formateada/actualizada.

    def compartir(self):
        url = str(self.ui.input_url.text())#<-- obtengo de qt lo que ha escrito el usuario
        o = ReformateoUrl(url) #<-- creo el objeto o pasandole la url para q la use luego el formateo
        o.formatear() #<-- ejecuto el reformateo
        url = o.url #<-- le seteo el nuevo valor del atributo url del objeto o ya formateado
        url = "https://www.facebook.com/sharer.php?u=" + url
        
        self.ui.webView.setFocus()
        #self.ui.webView.load(QtCore.QUrl(url))
        self.ui.webView.setUrl(QtCore.QUrl(url))#<-- navegamos a la url indicada
        #print url
        self.ui.input_url.setText(url) #<-- ponemos la nueva url formateada/actualizada.
        

    def loadComplete(self):
        self.url.setText(self.web.url().toString())
        self.status.hide()
Ejemplo n.º 4
0
	def __init__(self, parent=None):
		QtGui.QMainWindow.__init__(self, parent)
		self.ui = Ui_MainWindow()
		self.ui.setupUi(self)
		self.load_data_tabla()
		self.show()
		self.setFixedSize(576,348)
		self.conectar_acciones()
		self.ui.info.setVisible(False)
		self.messageDialog = QtGui.QMessageBox(self)
		self.messageDialog.setWindowTitle("Error")
    def __init__(self, parent=None):
        super(ControlVentanaMain, self).__init__(parent)
        self.ui =  Ui_MainWindow()
        self.ui.setupUi(self)

        self.setWindowTitle("Navegador")
        QtCore.QObject.connect(self.ui.go_button, QtCore.SIGNAL('clicked()'), self.openUrl)
        QtCore.QObject.connect(self.ui.facebookshare, QtCore.SIGNAL('clicked()'), self.compartir)
        QtCore.QObject.connect(self.ui.input_url, QtCore.SIGNAL("returnPressed()"), self.ui.go_button.click)


        self.ui.input_url.setText("http://www.google.es/")#<-- para que aparezca la primera vez en donde estamos.
Ejemplo n.º 6
0
class Peliculas(QtGui.QMainWindow):

	tabla_columnas = (
		(u"Título",200),
		(u"Año",50),
		(u"Director",150),
		(u"País",50),
		(u"Rank",40),
		)

	def __init__(self, parent=None):
		QtGui.QMainWindow.__init__(self, parent)
		self.ui = Ui_MainWindow()
		self.ui.setupUi(self)
		self.load_data_tabla()
		self.show()
		self.setFixedSize(576,348)
		self.conectar_acciones()
		self.ui.info.setVisible(False)
		self.messageDialog = QtGui.QMessageBox(self)
		self.messageDialog.setWindowTitle("Error")

	def conectar_acciones(self):
		self.ui.btn_subir.clicked.connect(self.action_btn_subir)
		self.ui.btn_bajar.clicked.connect(self.action_btn_bajar)

	def load_data_tabla(self):
		'''Método para mostrar los datos de la tabla, muestra todos los elementos de la tabla "movies" de la base de datos'''
		datos = controller.getDatos()
		rows = len(datos)
		model = QtGui.QStandardItemModel(rows,len(self.tabla_columnas))
		self.ui.tabla.setModel(model)

		for col,h in enumerate(self.tabla_columnas):
			model.setHeaderData(col, QtCore.Qt.Horizontal, h[0])
			self.ui.tabla.setColumnWidth(col, h[1])

		for i,data in enumerate(datos):
			row = [data[1],data[3],data[4],data[5],data[8]]
			for j, field in enumerate(row):
				index = model.index(i, j, QtCore.QModelIndex())
				model.setData(index,field)
			model.item(i).mov = data

		
		modelSel = self.ui.tabla.selectionModel()
		modelSel.currentChanged.connect(self.tabla_cell_selected)

	def tabla_cell_selected(self,index,indexp):
		self.mostrar_datos(index)

	def action_btn_subir(self):
		self.action_rank("subir")

	def action_btn_bajar(self):
		self.action_rank("bajar")

	def mostrar_datos(self,index):
		self.ui.info.setVisible(True)
		self.ui.lbl_title_reparto.setText("Reparto:")
		self.ui.lbl_title_descripcion.setText("Descripcion:")

		model = self.ui.tabla.model()
		rank = model.index(index.row(), 4, QtCore.QModelIndex()).data()
		movie = controller.getDatoRank(rank)
		pmap = QtGui.QPixmap(str(os.getcwd())+"/db_movies/"+str(movie[0]['poster']))

		self.ui.lbl_image.setPixmap(pmap)
		self.ui.lbl_reparto.setText(str(movie[0]['stars']))
		self.ui.lbl_descripcion.setText(str(movie[0]['description']))

		self.setFixedSize(805,650)

	def action_rank(self,accion):
		model = self.ui.tabla.model()
		index = self.ui.tabla.currentIndex()
		if index.row()==-1:
			self.messageDialog.setText(u"Debe seleccionar una película.")
			self.messageDialog.exec_()

		else:
			rank = model.index(index.row(), 4, QtCore.QModelIndex()).data()
			movie = controller.getDatoRank(rank)
			old_rank = int(movie[0]['ranking'])
			if(accion == "subir"):
				new_rank = old_rank-1
			elif(accion == "bajar"):
				new_rank = old_rank+1
			if(new_rank == 0):
				self.messageDialog.setText(u"No se puede subir más el rank.")
				self.messageDialog.exec_()
			else:
				movie_a = controller.getDatoRank(new_rank)
				controller.updateDatoRank(movie[0]['title'],new_rank)
				if(movie_a):
					controller.updateDatoRank(movie_a[0]['title'],old_rank)
				self.load_data_tabla()
class FuelPlanner(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super(FuelPlanner, self).__init__(parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.msgBox = QtWidgets.QMessageBox()
        #Pesos
        self.MRW = 106000
        self.MTOW = 105000
        self.MZFW = 87000
        self.SOW = 61252
        self.MLW = 95300
        #inicializando aeronave vacia
        self.ZFW = 61252
        self.TOW = 61252
        #inicializando combustible
        self.combustible_minimo_vuelo = 8040
        self.combustible_maximo = 24649
        self.combustible_reserva_final = 4000

        self.tiempo_reserva_final = timedelta(minutes=45)
        self.tiempo_extra = timedelta()

        self.ui.timeEdit_reserva_final.setTime(QtCore.QTime(0, 45))
        self.ui.lineEdit_num_app.setText(
            "650")  #por defecto una sola app instrumental
        self.ui.comboBox_num_app.currentIndexChanged.connect(
            self.calcular_combustible_apps)
        self.ui.spinBox_extra.valueChanged.connect(self.calcular_tiempo_extra)
        self.ui.pushButton.clicked.connect(self.calcular)

    def calcular_combustible_apps(self):
        combustible_app_instrumental = int(
            self.ui.comboBox_num_app.currentText()) * 650
        self.ui.lineEdit_num_app.setText(str(combustible_app_instrumental))

    def calcular_tiempo_extra(self):
        combustible_extra = self.ui.spinBox_extra.value()
        tiempo_extra_minutos = combustible_extra * 60 / 2700
        self.tiempo_extra = timedelta(minutes=tiempo_extra_minutos)
        tiempo = QtCore.QTime(int(tiempo_extra_minutos / 60),
                              tiempo_extra_minutos % 60)
        self.ui.timeEdit_extra.setTime(tiempo)

    def calcular(self):
        #TODO obtener valores desde la interfaz
        combustible_extra = self.ui.spinBox_extra.value()
        combustible_taxeo = self.ui.spinBox_taxeo.value()
        combustible_app_instrumental = int(
            self.ui.comboBox_num_app.currentText(
            )) * 650  #650 por cada app por instrumentos

        distancia_vuelo = self.ui.comboBox_distancia.currentText()
        distancia_alterno = self.ui.comboBox_distancia_alterno.currentText()
        altura_vuelo = self.ui.comboBox_altura.currentText()
        viento_vuelo = self.ui.comboBox_viento.currentText()

        carga_vuelo = self.ui.spinBox_payload.value()

        self.ZFW = self.SOW + carga_vuelo

        plan_ruta = baseDatos.calcularCombustibleRuta(altura_vuelo,
                                                      distancia_vuelo,
                                                      viento_vuelo)

        if not plan_ruta:
            self.msgBox.setWindowTitle('Error')
            self.msgBox.setText(
                'Error: The current parameters are out of a JT8D-7 equiped Dc-9-31 flight envelope.'
            )
            self.msgBox.setIcon(QtWidgets.QMessageBox.Critical)
            self.msgBox.setStandardButtons(QtWidgets.QMessageBox.Ok)
            self.msgBox.exec_()

            self.ui.lineEdit_combustible_total.setText("")
            self.ui.lineEdit_combustible_ruta.setText("")
            self.ui.lineEdit_combustible_alterno.setText("")
            return

        plan_alterno = baseDatos.calcularCombustibleAlterno(distancia_alterno)

        combustible_total = combustible_extra + combustible_taxeo + combustible_app_instrumental + self.combustible_reserva_final + (
            plan_ruta['combustible'] * 1000) + plan_alterno['combustible']

        tiempo_ruta = plan_ruta['tiempo'].split(":")
        tiempo_alterno = plan_alterno['tiempo'].split(":")
        tiempo_ruta_delta = timedelta(hours=int(tiempo_ruta[0]),
                                      minutes=int(tiempo_ruta[1]))
        tiempo_alterno_delta = timedelta(hours=int(tiempo_alterno[0]),
                                         minutes=int(tiempo_alterno[1]))
        tiempo_total = tiempo_ruta_delta + tiempo_alterno_delta + self.tiempo_extra + self.tiempo_reserva_final

        #el manual indica añadir 150 lbs de combustible por cada 5000 libras
        #que el LW supere las 85000 libras
        LW = self.ZFW + (combustible_total -
                         ((plan_ruta['combustible'] * 1000) + 300 + 650))

        if LW > 85000:
            diferencia = LW - 85000
            extra = diferencia * 150 / 5000
            combustible_total = combustible_total + extra

        if combustible_total > self.combustible_maximo:
            exceso = int(combustible_total - self.combustible_maximo)
            self.msgBox.setWindowTitle('Too much fuel')
            self.msgBox.setText("There's an excess of " + str(exceso) +
                                " pounds of fuel.")
            self.msgBox.setIcon(QtWidgets.QMessageBox.Critical)
            self.msgBox.setStandardButtons(QtWidgets.QMessageBox.Ok)
            self.msgBox.exec_()

            self.ui.lineEdit_combustible_total.setText("")
            return

        if combustible_total < self.combustible_minimo_vuelo:
            self.msgBox.setWindowTitle('Low fuel')
            self.msgBox.setText("The FAA requires a minimum of " +
                                str(self.combustible_minimo_vuelo) +
                                " for dispatch. Current fuel: " +
                                str(combustible_total))
            self.msgBox.setIcon(QtWidgets.QMessageBox.Critical)
            self.msgBox.setStandardButtons(QtWidgets.QMessageBox.Ok)
            self.msgBox.exec_()

            self.ui.lineEdit_combustible_total.setText("")
            return

        self.TOW = self.ZFW + combustible_total

        #---------------- Modificando interfaz -----------------

        #Combustible
        self.ui.lineEdit_combustible_ruta.setText(
            str(plan_ruta['combustible'] * 1000))
        self.ui.lineEdit_combustible_alterno.setText(
            str(plan_alterno['combustible']))
        self.ui.lineEdit_num_app.setText(str(combustible_app_instrumental))
        self.ui.lineEdit_combustible_total.setText(str(combustible_total))

        #Tiempos
        horas, minutos = tiempo_ruta
        self.ui.timeEdit_combustible_ruta.setTime(
            QtCore.QTime(int(horas), int(minutos)))

        horas, minutos = tiempo_alterno
        self.ui.timeEdit_combustible_alterno.setTime(
            QtCore.QTime(int(horas), int(minutos)))

        minutos = int(tiempo_total.seconds / 60) % 60
        horas = int((tiempo_total.seconds / 60) / 60)

        self.ui.timeEdit_tiempo_total.setTime(QtCore.QTime(horas, minutos))

        #Pesos
        self.ui.lcdNumber_ZFW.display(self.ZFW)
        self.ui.lcdNumber_TOW.display(self.TOW)
        self.ui.lcdNumber_LW.display(LW)

        paletaLcdZfw = self.ui.lcdNumber_ZFW.palette()
        paletaLcdTow = self.ui.lcdNumber_TOW.palette()
        paletaLcdLw = self.ui.lcdNumber_LW.palette()

        if self.TOW > self.MTOW:
            paletaLcdTow.setColor(paletaLcdTow.WindowText,
                                  QtGui.QColor(255, 45, 30))

        else:
            paletaLcdTow.setColor(paletaLcdTow.WindowText,
                                  QtGui.QColor(24, 28, 21))

        if self.ZFW > self.MZFW:
            paletaLcdZfw.setColor(paletaLcdZfw.WindowText,
                                  QtGui.QColor(255, 45, 30))

        else:
            paletaLcdZfw.setColor(paletaLcdZfw.WindowText,
                                  QtGui.QColor(24, 28, 21))

        if LW > self.MLW:
            paletaLcdLw.setColor(paletaLcdLw.WindowText,
                                 QtGui.QColor(255, 45, 30))
        else:
            paletaLcdLw.setColor(paletaLcdLw.WindowText,
                                 QtGui.QColor(24, 28, 21))

        self.ui.lcdNumber_TOW.setPalette(paletaLcdTow)
        self.ui.lcdNumber_ZFW.setPalette(paletaLcdZfw)
        self.ui.lcdNumber_LW.setPalette(paletaLcdLw)
Ejemplo n.º 8
0
 def __init__(self, parent=None):
   QtGui.QWidget.__init__(self, parent)
   self.ui = Ui_MainWindow()
   self.ui.setupUi(self)