Ocultar un objeto QMenu en Qt

12 may 10 | Etiquetas: , ,

Un instancia QMenu contiene siempre un objeto QAction, aunque no lo hayas creado tú. Por esta razón si queremos ocultar un QMenu vacío no nos sirve llamar al método setHidden(true) (o a setVisible(false)) como normalmente harías.

  1. QMenu *editMenu = new QMenu();
  2. ....
  3. editMenu->clear();
  4. editMenu->menuAction()->setVisible(false);

Una solución menos elegante, y no sé si arriesgada, es destruir la instancia QAction dummy llamando a editMenu->removeAction(editMenu->menuAction());

Sin comentarios.