Aplicando funciones de Python directamente al diseñador Qt como señales.

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:

  1. Diseñe la interfaz de usuario utilizando Qt Designer.
  2. Genere un módulo Python a partir del archivo UI usando pyuic4 .
  3. Crear un módulo de aplicación para la lógica del progtwig principal.
  4. Importe la clase GUI en el módulo de la aplicación.
  5. Conecte la interfaz gráfica de usuario a la lógica del progtwig.

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 ).