[pyar] QtTableWidget + focusOutEvent (Fernando Gonzalez)
Cristhian Martin
cristhian en linuxar.com
Sab Oct 26 09:15:20 -03 2019
Fernando, buenos días, por si te interesa te envío como resolví el tema del foco
en los QTableWidget
Defino un eventFilter en la clase que hereda de la ventana y tiene programada
toda la lógica de esta forma
def eventFilter(self, QObject, QEvent): if isinstance(QObject, QtGui.QTableWidget):
if QEvent.type() == QEvent.FocusOut: print('Salgo de la grilla') elif
QEvent.type() == QEvent.FocusIn: print('Entro a la grilla') return
super(cod_libro_iva, self).eventFilter(QObject, QEvent)
y luego la instalo en el __init__ de la siguiente forma
self.ui.tableWidget.installEventFilter(self)
De esta forma el código queda todo en el mismo lugar y no necesito modificar el
.py que me genera el pyuic4.
Espero te sea de ayuda y gracias nuevamente por tu colaboracion.
Saludos Cordiales
Cristhian Martin
El Vie 25 Oct 2019 10:54:50 pyar-request en python.org.ar escribió:
> Envíe los mensajes para la lista pyar a
> pyar en python.org.ar
>
> Para subscribirse o anular su subscripción a través de la WEB
> http://listas.python.org.ar/listinfo/pyar
>
> O por correo electrónico, enviando un mensaje con el texto "help" en
> el asunto (subject) o en el cuerpo a:
> pyar-request en python.org.ar
>
> Puede contactar con el responsable de la lista escribiendo a:
> pyar-owner en python.org.ar
>
> Si responde a algún contenido de este mensaje, por favor, edite la
> linea del asunto (subject) para que el texto sea mas especifico que:
> "Re: Contents of pyar digest...". Además, por favor, incluya en la
> respuesta sólo aquellas partes del mensaje a las que está
> respondiendo.
>
>
> Asuntos del día:
>
> 1. Re: QtTableWidget + focusOutEvent (Fernando Gonzalez)
> 2. Puzzler de Python (Agustin Barto)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 24 Oct 2019 15:55:35 -0300
> From: Fernando Gonzalez <fagonzalez en gmail.com>
> To: Python Argentina <pyar en python.org.ar>
> Subject: Re: [pyar] QtTableWidget + focusOutEvent
> Message-ID:
> <CACPukSWaoXL4Tx+B=-U-
SGdK285hNeY+9CD+2VffHSw79kpeAg en mail.gmail.com>
> Content-Type: text/plain; charset="UTF-8"
>
> Hola cuando necesite capturar un evento (returnPressed) del
> QTableWidget, tuve que crear una clase nueva basada en QTableWidget,
> tal como vos hiciste, pero la única manera que me funciono, fue cuando
> edito el .py que genera en pyuic4, agrego en la seccion import la
> nueva clase, y en el fuente reemplazo
>
> .
> .
> self.tbwdetalle = QTableWidget(...... por self.tbwdetalle
> = CellReturnPress(... (asi nombre la nueva clase, original no?)
>
> y probe de todas las formas que se me ocurrio, ya se que no hay que
> ovidarse de editar el .py, a veces me olvido y me puteo a mi mismo
>
> un abrazo
>
> Fer
>
> El jue., 24 oct. 2019 a las 12:04, Cristhian Martin
>
> (<cristhian en linuxar.com>) escribió:
> > Buenos días, estoy intentando capturar el evento focusOut de un
> > QTableWidget, la verdad es que nunca trabaje con eventos en un widget en
> > particular salvo el MainWindow, lo estoy tratando de hacer por lo que
> > pude encontrar googleando con una implementación de una subclase pero no
> > estoy logrando resultado alguno, si alguien lo utilizo y me puede dar una
> > mano se lo agradezco.
> >
> > La implementacion de la clase la tengo hecha de la siguiente manera
> >
> > class MyTableWidget(QtGui.QTableWidget):
> > def __init__(self):
> > super(MyTableWidget, self).__init__()
> >
> > def focusOutEvent(self, QFocusEvent):
> > print('NNNNNNNNNNNNNNNN')
> > return QtGui.QTableWidget.focusOutEvent()
> >
> > y la llamo de la siguiente forma, cuando cargo el form
> >
> > def __init__(self, permisos, usuario_log):
> > super(cod_libro_iva, self).__init__()
> > self.ui = Ui_Form()
> > self.ui.setupUi(self)
> > self.ui.tableWidget = MyTableWidget()
> >
> > La verdad es que hasta aquí llegue haciendo distintas pruebas y se me
> > están
> > quemando los papeles.
> >
> > Agradezco cualquier sugerencia.
> >
> > Saludos Cordiales
> > _______________________________________________
> > Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> > Sitio web: http://www.python.org.ar/
> >
> > Para administrar la lista (o desuscribirse) entrar a
> > http://listas.python.org.ar/listinfo/pyar
> >
> > La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> > Argentina - http://www.usla.org.ar
> ------------------------------
>
> Message: 2
> Date: Fri, 25 Oct 2019 10:56:41 -0300
> From: Agustin Barto <abarto en gmail.com>
> To: Python Argentina <pyar en python.org.ar>
> Subject: [pyar] Puzzler de Python
> Message-ID:
>
<CADya715WEms85iC9T+WStC_kLXvNqtNKQn3fjnVR8_qp7EqYuA en mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Estimadxs:
>
> Mientras estaba tratando de resolver un problema en el trabajo me encontré
> con una salida que no esperaba. Investigando la raiz del problema, me
> encontré con una curiosidad que destilé en el siguiente ejemplo.
>
> La salida muestra la proyección de la lista de diccionarios sobre el campo
> "b" en lugar de "a". La solución es cambiar los generadores por listas en
> la definición de "t", pero no me queda muy claro porque funciona mal con
> generadores.
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20191026/92811d69/attachment-0001.html>
Más información sobre la lista de distribución pyar