son recuperar rapido poner partes pages mostrar menú marcadores mac las illustrator herramientas geogebra fija está dónde dev descripcion dejar cómo cuales como borland barra arcmap activar acceso c++ qt qtoolbar

c++ - recuperar - ¿Hay alguna manera de evitar el funcionamiento oculto de una barra de herramientas?



partes de borland c++ (5)

En Qt, si hago clic derecho en una barra de herramientas, se mostrará el menú que me permite ocultar la barra de herramientas. Necesito desactivar esta funcionalidad porque no quiero que la barra de herramientas se oculte. ¿Hay alguna forma de hacer esto?


Hay varias formas de lograr esto sin tener que alterar la funcionalidad contextMenu. Vea los siguientes 3 ejemplos de PySide:

1. Deshabilite la función toggleViewAction de QToolBar :

UnhidableToolBar = QToolBar() UnhidableToolBar.toggleViewAction().setEnabled(False)

2. Conéctese a la señal de visibilityChanged :

toolbar.visibilityChanged.connect(lambda: toolbar.setVisible(True))

3. Subclase QToolBar y usa hideEvent :

class UnhideableQToolBar(QToolBar): def hideEvent(self, event): self.setVisibile(True)

Recomendación:

Mientras que 2 y 3 son bastante sucios, la solución 1 muestra la barra de herramientas en el menú contextual como un QDockWidget que tiene la característica DockWidgetClosable set. Entonces, usa la solución 1 o, si quieres eliminar la acción, echa un vistazo a la respuesta de Steven.


Pude configurar el ContextMenuPolicy directamente en la barra de herramientas (no en la ventana principal), siempre que use Qt::PreventContextMenu o Qt::ActionsContextMenu . Prevent elimine el menú contextual y hacer clic con el botón derecho no tiene ningún efecto en la barra de herramientas, mientras que Actions creó un bonito menú contextual compuesto por las acciones que ya están en mi barra de herramientas. Qt::NoContextMenu no parece tener ningún efecto.

toolbar->setContextMenuPolicy(Qt::PreventContextMenu);


Reemplazar QMainWindow :: createPopupMenu () ej.

QMenu* MyApp::createPopupMenu() { QMenu* filteredMenu = QMainWindow::createPopupMenu(); filteredMenu->removeAction( mUnhidableToolBar->toggleViewAction() ); return filteredMenu; }

Tenga en cuenta que las otras respuestas que sugieren desactivar el menú contextual solo funcionarán si desea desactivar la ocultación / visualización de todas las barras de herramientas y todos los widgets de acoplamiento.



Herede QToolbar y contextMenuEvent() .