Buenas, mi nombre es Ramon, tengo 17 años y soy de Mallorca. Me añadí a está lista hará unos días pero aún no he participado, y hoy, que he empezado con las GUIs en python, he decidido dar el paso.
Bueno aquí va mi duda: Cree un programa para convertir de binario a decimal y viceversa a través de la consola, y he decidido pasarlo a GUI. Pero ahora que lo he pasado, no encuentro ningún error en el código (es la primera vez que hago una interfaz), cuando lo arranco desde la consola, hace un salto de línea y se queda allí, pero no se abre la GUI ni nada. Añado los archivos por si alguien prefiere bajarlos a verlos desde aquí. Gracias de antemano. Este es el archivo "binari.py" # -*- coding: utf-8 -*- > > import sys > > from binarigui import Ui_Form > > from PyQt4 import QtCore, QtGui > > >> class Principal(QtGui.QWidget): > > def __init__(self): > > QtGui.QWidget.__init__(self) > > > > self.finestra = Ui_Form() > > self.finestra.setupUi(self) > > > > self.connect(self.finestra.decimalabinari, QtCore.SIGNAL('clicked()'), >> self.defdecimalabinari) > > self.connect(self.finestra.binariadecimal, QtCore.SIGNAL('clicked()'), >> self.defbinariadecimal) > > > > >> > > >> def defdecimalabinari(self): > > if self.textbox.isdigit(): > > self.textbox = int(self.textbox) > > self.label_answer = '' > > self.label_error = '' > > if self.textbox == 0: > > label_answer = '0' > > elif self.textbox == 1: > > label_answer = '0' > > else: > > while self.textbox > 0: > > self.label_answer = self.label_answer + str(self.textbox % 2) > > self.textbox = self.textbox // 2 > > self.label_answer = self.label_answer[::-1] > > while self.label_answer[0] == '0': > > self.label_answer = self.label_answer[1:] > > else: > > self.label_error = 'Erorr: ha d\'introduir només nombres.' > > def defbinariadecimal(self): > > if self.textbox.isdigit(): > > self.textbox = str(self.textbox) > > for z in self.textbox: > > if z != '0' and z != '1': > > self.label_error = 'Error: només zeros i uns' > > else: > > self.label_answer = int() > > index = int(-1) > > for x in self.textbox: > > index = index + 1 > > for y in self.textbox: > > self.label_answer = self.label_answer + (int(y) * (2**index)) > > index = index - 1 > > else: > > self.label_error = 'Error: ha d\'introduir només nombres.' > > def main(): > > app = QtGui.QApplication(sys.argv) > > finestra = Principal() > > finestra.show > > sys.exit(app.exec_()) > > > > if __name__ == '__main__': > > main() > > Este es el archivo "binarigui.py" que contiene la GUI creada con Qt Designer: # -*- coding: utf-8 -*- > # Form implementation generated from reading ui file 'Projecte Binari.ui' # # Created: Fri Aug 27 00:40:30 2010 # by: PyQt4 UI code generator 4.7.3 # # WARNING! All changes made in this file will be lost! > from PyQt4 import QtCore, QtGui > class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") Form.resize(354, 113) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, > QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(Form.sizePolicy().hasHeightForWidth()) Form.setSizePolicy(sizePolicy) Form.setMinimumSize(QtCore.QSize(354, 113)) Form.setMaximumSize(QtCore.QSize(354, 113)) Form.setWindowTitle("Conversor Decimal - Binari") self.decimalabinari = QtGui.QPushButton(Form) self.decimalabinari.setGeometry(QtCore.QRect(211, 10, 131, 27)) self.decimalabinari.setObjectName("decimalabinari") self.binariadecimal = QtGui.QPushButton(Form) self.binariadecimal.setGeometry(QtCore.QRect(211, 50, 131, 27)) self.binariadecimal.setObjectName("binariadecimal") self.textbox = QtGui.QTextEdit(Form) self.textbox.setGeometry(QtCore.QRect(10, 10, 181, 31)) self.textbox.setInputMethodHints(QtCore.Qt.ImhDigitsOnly) > self.textbox.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) > self.textbox.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.textbox.setAutoFormatting(QtGui.QTextEdit.AutoNone) self.textbox.setAcceptRichText(True) self.textbox.setObjectName("textbox") self.label_answer = QtGui.QLabel(Form) self.label_answer.setGeometry(QtCore.QRect(10, 60, 151, 17)) self.label_answer.setObjectName("label_answer") self.label_error = QtGui.QLabel(Form) self.label_error.setEnabled(True) self.label_error.setGeometry(QtCore.QRect(10, 90, 331, 17)) font = QtGui.QFont() font.setWeight(75) font.setBold(True) self.label_error.setFont(font) self.label_error.setText("") self.label_error.setObjectName("label_error") > self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) > def retranslateUi(self, Form): self.decimalabinari.setText(QtGui.QApplication.translate("Form", > "Decimal a Binari", None, QtGui.QApplication.UnicodeUTF8)) self.binariadecimal.setText(QtGui.QApplication.translate("Form", > "Binari a Decimal", None, QtGui.QApplication.UnicodeUTF8)) self.label_answer.setText(QtGui.QApplication.translate("Form", > "Resultat:", None, QtGui.QApplication.UnicodeUTF8)) Ramon Villalonga
Projecte Binari.tar.gz
Description: GNU Zip compressed data
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/