Soy nuevo en la progtwigción Qt y GUI en general, pero he hecho un poco de encoding en los módulos de escritura en Python, etc. Necesito desarrollar interfaces gráficas de usuario simples para algunos de mis módulos antiguos.
Lo que estoy tratando de hacer puede ser representado por el siguiente ejemplo simple:
def f(x, y): z = x + y return z
Para esta función daré dos ediciones de línea para x e y y una para z. Ahora creo un pulsador ‘calcular’ y cuando lo hago, quiero que tome x e y de las ediciones de línea, ejecute la función f(x,y)
y otorgue la salida a z.
¿Hay alguna forma de hacerlo directamente en Qt Designer agregando la función f(x,y)
escrita en python?
¿Si no, cuales son las alternativas?
El flujo de trabajo básico al escribir una interfaz gráfica de usuario de PyQt4 es:
pyuic4
. Entonces, dado el archivo de interfaz de usuario calc.ui
, podría generar el módulo de interfaz de usuario con:
pyuic4 -w calc.ui > calc_ui.py
Y luego crear un módulo de aplicación algo como esto:
from PyQt4 import QtGui, QtCore from calc_ui import CalculatorUI class Calculator(CalculatorUI): def __init__(self): CalculatorUI.__init__(self) self.buttonCalc.clicked.connect(self.handleCalculate) def handleCalculate(self): x = int(self.lineEditX.text()) y = int(self.lineEditY.text()) self.lineEditZ.setText(str(x + y)) if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Calculator() window.show() sys.exit(app.exec_())
Tenga en cuenta que es objectName
establecer el nombre de objeto para cada widget en el Editor de propiedades del diseñador para que puedan identificarse fácilmente más adelante. En particular, el nombre de objeto del formulario principal se convertirá en el nombre de clase de la clase de GUI que se importa (suponiendo que se pyuic4
indicador “-w” para pyuic4
).