Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
PyQt5, pasar variable a una def desde button
#1
Hola cracks,
Sé que tiene que ser algo básico que se me escapa pero soy incapaz de pasar una variable n a una función que está relacionada con un QButton...

Código:
import sys
import pyodbc
from PyQt5 import uic
from PyQt5.QtWidgets import QMainWindow, QApplication

class GUI_tareas(QMainWindow):
    def __init__(self):
        super().__init__()
        uic.loadUi("GUI_tareas.ui", self)
        self.boton_actualizar_1.clicked.connect(self.fn_actualizar)#QUIERO PASAR n=1
        self.boton_actualizar_2.clicked.connect(self.fn_actualizar)#QUIERO PASAR n=2

    def fn_actualizar(self):
  
        print(n)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    GUI = GUI_tareas()
    GUI.show()
    sys.exit(app.exec_())

He probado con fn_actualizar(self, n) y etc pero con diferentes combinaciones siempre me da error...

Gracias de antemano!!!
Responder
#2
Hola, lo podés hacer con la función estándar functools.partial():

Código:
import sys
import pyodbc
from functools import partial
from PyQt5 import uic
from PyQt5.QtWidgets import QMainWindow, QApplication

class GUI_tareas(QMainWindow):
    def __init__(self):
        super().__init__()
        uic.loadUi("GUI_tareas.ui", self)
        self.boton_actualizar_1.clicked.connect(partial(self.fn_actualizar, 1))
        self.boton_actualizar_2.clicked.connect(partial(self.fn_actualizar, 2))

    def fn_actualizar(self, n):
        print(n)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    GUI = GUI_tareas()
    GUI.show()
    sys.exit(app.exec_())

Saludos!
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#3
Muchas Gracias Francisco!!!!!
Lo he incorporado y va de cine!!!!

Eres un crack!!
Responder
#4
Me alegro! De nada Wink
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)