punto - aplicando funciones de python directamente al diseñador de Qt como señales
graficar superficies en 3d python (1)
Soy nuevo en la programación de Qt y GUI en general, pero he hecho un poco de codificación en los módulos de escritura de pitón y demás. Necesito desarrollar GUI simples para algunos de mis módulos anteriores.
Lo que intento hacer se puede representar con el siguiente ejemplo simple:
def f(x, y):
z = x + y
return z
Para esta función daré dos ediciones de línea para xey y una para z. Ahora creo un botón ''calcular'' y cuando hago eso quiero que tome xey de las ediciones de línea ejecute la función f(x,y)
y dé la salida a z.
¿Hay alguna manera de hacer esto 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 un gui PyQt4 es:
- Diseña la interfaz de usuario usando Qt Designer.
- Genere un módulo Python desde el archivo UI usando
pyuic4
. - Cree un módulo de aplicación para la lógica principal del programa.
- Importe la clase de la GUI en el módulo Aplicación.
- Conecte la GUI a la lógica del programa.
Entonces, dado el archivo UI calc.ui
, podría generar el módulo UI con:
pyuic4 -w calc.ui > calc_ui.py
Y luego crea 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 ayuda establecer el objectName
para cada widget en Designer''s Property Editor para que puedan identificarse fácilmente más adelante. En particular, el objectName
del formulario principal se convertirá en el nombre de clase de la clase GUI que se importa (suponiendo que se usa el indicador "-w" para pyuic4
).