[pyar] [PyQt] Mostra/ocultar menuBar

Fernando Pelliccioni fpelliccioni en gmail.com
Lun Mayo 26 16:26:30 ART 2014


2014-05-25 22:28 GMT-03:00 Dario Gabriel Acosta <
acostadariogabriel en gmail.com>:

> Fernando. Lo que hice fue:
>
>
> self.atajoOcultarMenu = QShortcut(
>
> ATAJOS['ocultar-menu'], self.app)
>
>
> luego la conexión:
>
> self.connect(self.atajoOcultarMenu, SIGNAL("activated()"),
>
> self.ocultar_mostrar_menu)
>
> self.accionMostrarOcultar_menu.setCheckable(True)
>
> self.accionMostrarOcultar_menu = menu_ver.addAction(
>
> self.trUtf8("Mostrar/Ocultar Menu"))
>
> self.connect(self.accionMostrarOcultar_menu, SIGNAL("triggered()"),
>
> self.ocultar_mostrar_menu)
>
> self.accionMostrarOcultar_menu.setChecked(True)
>
>
> Funciona, pero, está bien eso? Por que tuve que hacer todo eso para cada
> QAction.
>

Sí, creo que está bien. Creo que no te queda otra.
Es un garrón, así que te conviene modularizarlo para evitar repetir siempre
el mismo pedazo de código.


>
> Sebastián. Aveces utilizo una forma o la otra, mi duda es por ejemplo:
>
>
> self.connect(widget, SIGNAL("triggered(int)"), self.metodo)
>
>
> ¿ Cómo hago con el parámetro int en la forma
> self.widget.triggered.connect(self.metodo) ?
>
>  Saludos!.
>
>> Joya!
>>> ¿Cómo lo solucionaste?
>>>
>>>
>>>> A todos los QAction les agregué shortcut's con setShortcut, es
>>>> conveniente hacerlo con QShortcut?.
>>>>
>>>>
>>> Perdón, no fui muy claro en mi email anterior...
>>> Me refería a que en vez de asociar un shortcut a un QAction, usando
>>> setShortcut, tendrías que usar un QShortcut que no esté asociado al
>>> MenuBar, ya que se va a ocultar, y al estar oculto no se te van a disparar
>>> los signals.
>>>
>>> Acá un ejemplo, pero en Qt (C++), te queda como ejercicio traducirlo a
>>> PyQt :)
>>>
>>>     shortcut = new QShortcut(Qt::CTRL + Qt::Key_F10, this);
>>>     shortcut->setContext(Qt::ApplicationShortcut);
>>>     QObject::connect(shortcut, SIGNAL(activated()), this,
>>> SLOT(ocultar_mostrar_menu()));
>>>
>>>
>>> Ojo! En este caso el shortcut es "global" a nivel de la aplicación.
>>> Podés hacer que sea "menos global" y asociarlo a la ventana donde esta tu
>>> MenuBar.
>>> Avisame si necesitas una mano traduciendo el código o cualquier otra
>>> cosa.
>>>
>>> Abrazo,
>>> Fernando.
>>>
>>>     self.connect(self.accionOcultarMenu, SIGNAL("triggered()"),
>> self.ocultar_mostrar_menu)
>>
>> Si querés podrías escribir de manera más "pythonesca" lo anterior así:
>>
>>     self.accionOcultarMenu.triggered.connect(self.ocultar_mostrar_menu)
>>
>>
>>
>>
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
>
> --
> Gabo
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140526/513b8f40/attachment.html>


More information about the pyar mailing list