es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

PyQt: Verificando el widget actual

Estoy utilizando QStackwidget y quiero verificar si estoy en el Widget A o B. Según la documentación de PyQt, dice que necesitaré el método currentwidget() que devolverá el Widget/página actual. Este es el resultado de este método en Python:

print(self.ui.stackedWidget.currentWidget())

La consola muestra lo siguiente:

<pyqt5.qtwidgets.qwidget object=”” at=”” 0x0000203a1009160=””>

Entonces muestra la dirección del widget en el que me encuentro actualmente.

Pero lo que quiero implementar es lo siguiente:

if self.ui.stackedWidget.currentWidget() == página A:
#acción1
elif self.ui.stackedWidget.currentWidget() == página B:
#acción2
y así sucesivamente…

¿Hay alguna manera de obtener el nombre de la página a través del método currentWidget()?</pyqt5.qtwidgets.qwidget>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, el método currentWidget() no devuelve el nombre de la página sino el objeto del widget en sí. Para lograr la funcionalidad deseada, deberá asignar un nombre único de objeto a cada página/widget en el QStackWidget cuando los cree.

    Por ejemplo, cuando cree página A, puede establecer el nombre del objeto de la siguiente manera:

    pageA.setObjectName("pageA")
    

    Luego, puede modificar su código para comprobar el nombre del objeto en lugar del objeto del widget en sí:

    if self.ui.stackedWidget.currentWidget().objectName() == "pageA":
        #acción1
    elif self.ui.stackedWidget.currentWidget().objectName() == "pageB":
        #acción2
    y así sucesivamente...
    

    Esto le permitirá determinar en qué página/widget se encuentra actualmente en el QStackWidget.

Comments are closed.