[Código-PyQT4]Binario a decimal y su inverso - JaAViEr | 0x5d

Iniciado por 0x5d, 6 Abril 2012, 23:39 PM

0 Miembros y 1 Visitante están viendo este tema.

0x5d

Hola a todos !

Como le he vuelto a dar la vida a mi PC. Instalé el Debian de nuevo, no podía faltar instalar el amado QT4. Así que me propuse como práctica crear este mismo código Consola ~> [Python]Decimal a binario y su invero, que por cierto también pasé a la web ~> Binary Converter Online. Esta vez en PyQT4 primero les dejo el screenshot de como se ve:


Y Su código :
Código (python) [Seleccionar]

# -*- coding: utf-8 -*-
# Autor : 0x5d ~> JaAViEr
# Sitio Web ~> www.rootcodes.com
# Twitter ~> @0x5d

from PyQt4 import QtGui, QtCore
import sys

class testeo(QtGui.QWidget):
  def __init__(self, parent=None):
    QtGui.QWidget.__init__(self, parent)
    self.setWindowTitle("Bin to Dec | 0x5d")
    self.label_binario = QtGui.QLabel("Binario :", self).setGeometry(2,15,59,17)
    self.input_binario = QtGui.QLineEdit(self)
    self.input_binario.setGeometry(60,10,230,27)
    self.label_resultado = QtGui.QLabel("Resultado :", self).setGeometry(2,50,80,17)
    self.input_salida = QtGui.QLineEdit(self)
    self.input_salida.setGeometry(80,43,210,27)
    self.input_salida.setReadOnly(True)
    self.boton_limpiar = QtGui.QPushButton("Limpiar campos", self)
    self.boton_limpiar.setGeometry(1,75,140,27)
    self.boton_convertir = QtGui.QPushButton("Convertir", self)
    self.boton_convertir.setGeometry(145,75,140,27)
    self.connect(self.boton_limpiar, QtCore.SIGNAL("clicked()"), self.clear_inputs)
    self.connect(self.boton_convertir, QtCore.SIGNAL("clicked()"), self.conversor)
 
  def clear_inputs(self):
    self.input_binario.setText("")
    self.input_salida.setText("")
   
  def conversor(self):
    numero = str(self.input_binario.text())
    t = 0
    for i,h in zip(numero[::-1],range(0,len(numero))): t+=int(i)*2**int(h)
    self.input_salida.setText(str(t))
   
app = QtGui.QApplication(sys.argv)
form = testeo()
form.show()
app.exec_()

Y Decimal a Binario:

Código ~>:
Código (python) [Seleccionar]

# -*- coding: utf-8 -*-
# Autor : 0x5d ~> JaAViEr
# Sitio Web ~> www.rootcodes.com
# Twitter ~> @0x5d

from PyQt4 import QtGui, QtCore
import sys

class testeo(QtGui.QWidget):
  def __init__(self, parent=None):
    QtGui.QWidget.__init__(self, parent)
    self.setWindowTitle("Dec to Bin | 0x5d")
    self.label_binario = QtGui.QLabel("Decimal:", self).setGeometry(2,15,59,17)
    self.input_binario = QtGui.QLineEdit(self)
    self.input_binario.setGeometry(60,10,230,27)
    self.label_resultado = QtGui.QLabel("Resultado :", self).setGeometry(2,50,80,17)
    self.input_salida = QtGui.QLineEdit(self)
    self.input_salida.setGeometry(80,43,210,27)
    self.input_salida.setReadOnly(True)
    self.boton_limpiar = QtGui.QPushButton("Limpiar campos", self)
    self.boton_limpiar.setGeometry(1,75,140,27)
    self.boton_convertir = QtGui.QPushButton("Convertir", self)
    self.boton_convertir.setGeometry(145,75,140,27)
    self.connect(self.boton_limpiar, QtCore.SIGNAL("clicked()"), self.clear_inputs)
    self.connect(self.boton_convertir, QtCore.SIGNAL("clicked()"), self.conversor)
 
  def clear_inputs(self):
    self.input_binario.setText("")
    self.input_salida.setText("")
   
  def conversor(self):
    resto = []
    nuevo = [int(self.input_binario.text())]
    while nuevo[-1]!=0:
      resto.append(nuevo[-1]%2)
      nuevo.append(nuevo[-1]/2)
    s = ""
    for i in resto[::-1]: s+="%s"%i
    self.input_salida.setText(str(s))
   
app = QtGui.QApplication(sys.argv)
form = testeo()
form.show()
app.exec_()


Fuente : http://rootcodes.com/pyqt4binario-a-decimal-y-su-inverso/

Saludos, Javier.
¡ SIGUEME EN TWITTER -> @JavierEsteban__ !