Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: 0x5d en 25 Diciembre 2011, 01:06 am



Título: [Código-PyQT4]Calculadora por secuencias - JaAViEr(0x5d)
Publicado por: 0x5d en 25 Diciembre 2011, 01:06 am
Hola, buen día.

  En esta oportunidad vengo a enseñarles un código bien sencillo, pero que por consola llevaría unas 3 líneas, por lo que preferí pasarlo al amigable QT4.

  Trata de una calculadora por secuencia, por lo que debemos insertar la operación en el primer QLineEdit, para ser esta resuelta. Si se inserta una operación inválida, el programa lo hará saber en el cuadro del resultado, si no estoy siendo claro, les dejo un screenshot más representativo:

(http://anycode.s.gp/misubidas/secuencia.png)

Y el código:
Código
  1. # -*- coding: utf-8 -*-
  2. """
  3. Autor: 0x5d - JaAViEr
  4. Twitter: @0x5d
  5. """
  6. import sys
  7. from PyQt4 import QtCore, QtGui
  8.  
  9. class secuencia(QtGui.QWidget):
  10.  def __init__(self, parent=None):
  11.    QtGui.QWidget.__init__(self, parent)
  12.    self.resize(411, 60)
  13.    self.setWindowTitle("Calculadora de secuencias :: JaAViEr(0x5d)")
  14.    self.input_secuencia = QtGui.QLineEdit(self)
  15.    self.input_secuencia.setGeometry(80, 5, 321, 21)
  16.    self.label_secuencia = QtGui.QLabel("Secuencia", self)
  17.    self.label_secuencia.setGeometry(5, 2, 71, 31)
  18.    self.boton_ver = QtGui.QPushButton("Ver", self)
  19.    self.boton_ver.setGeometry(323, 30, 81, 21)
  20.    self.input_resultado = QtGui.QLineEdit(self)
  21.    self.input_resultado.setGeometry(80, 30, 240, 21)
  22.    self.input_resultado.setReadOnly(True)
  23.    self.label_resultado = QtGui.QLabel("Resultado", self)
  24.    self.label_resultado.setGeometry(5, 31, 71, 21)
  25.    self.connect(self.boton_ver, QtCore.SIGNAL("clicked()"), self.ejecutar)
  26.  
  27.  def ejecutar(self):
  28.    try:
  29.      self.resultado = str(self.input_secuencia.text())
  30.      self.input_resultado.setText(str(eval(self.resultado)))
  31.    except:
  32.      self.input_resultado.setText(QtGui.QApplication.translate("self", "Operación inválida", None, QtGui.QApplication.UnicodeUTF8))
  33. app = QtGui.QApplication(sys.argv)
  34. secuencia = secuencia()
  35. secuencia.show()
  36. app.exec_()
  37.  

Espero que sea de su agrado :P.
¡ Creo que ya se están notando mis vacaciones !

Fuente: http://rootcodes.com/pyqt4calculadora-por-secuencia/

Saludos.


Título: Re: [Código-PyQT4]Calculadora por secuencias - JaAViEr(0x5d)
Publicado por: leogtz en 26 Diciembre 2011, 20:29 pm
Perfecto, qué bonito es Qt :D

Yo hice algo parecido pero desde 0, un analizador léxico, un analizador sintáctico descendente y por último el analizador semántico, es bastante compleja la cosa para algo tan sencillo.


Saludos.


Título: Re: [Código-PyQT4]Calculadora por secuencias - JaAViEr(0x5d)
Publicado por: 0x5d en 27 Diciembre 2011, 02:19 am
Perfecto, qué bonito es Qt :D

Yo hice algo parecido pero desde 0, un analizador léxico, un analizador sintáctico descendente y por último el analizador semántico, es bastante compleja la cosa para algo tan sencillo.


Saludos.
Si, el QT4 es bien guapo, atractivo visual, es lo que me gusta de él.