Estoy tratando de agregar un menú contextual (clic con el botón derecho) a Qt QListView. Veo en Qt 3.3 que hay "contextMenuRequested" (que podría usar) - http://doc.qt.digia.com/3.3/qlistview.html#contextMenuRequested. Sin embargo, no puedo ver ese método en Qt4. ¿Alguien sabe cómo agregar un menú contextual a un QListView?Qt QListView - ¿menús contextuales?
Respuesta
No sé por qué la señal se ha eliminado pero aún así es un QWidget
lo que siempre puede anular
void QWidget::contextMenuEvent (QContextMenuEvent*);
o
void QWidget::customContextMenuRequested(const QPoint& pos);
dependiendo de la configuración de directivas menú contextual para el widget .
No sé lo que usted está tratando de lograr, pero se puede añadir fácilmente un menú contextual para cualquier tipo de artilugio llamando QWidget::AddAction(QAction*)
con las acciones que desea agregar a su menú contextual y seleccionando la política de menú contextual
widget->setContextMenuPolicy(Qt::ActionsContextMenu);
el widget va a preparar y mostrar el menú contextual, todo lo que tiene que hacer es conectar las acciones triggered()
señales a los controladores apropiados
dependiendo de cómo se haya configurado el ContextMenuPolicy en el QWidget
usted tiene unos pocos opciones.
Si lo ha configurado en Qt::DefaultContextMenu
, simplemente anule la función protegida contextMenuEvent(QContextMenuEvent*)
en QWidget
. Creo que este es el predeterminado.
Si lo ha configurado en Qt::ActionsContextMenu
, simplemente agregue todas sus acciones a su widget y deje que el sistema Qt se encargue de mostrar el menú contextual.
O si lo ha configurado en Qt::CustomContextMenu
, necesita conectarse a la señal customContextMenuRequested()
e implementar su propio controlador de menú contextual.
Todo esto está documentado en la documentación ContextMenuPolicy disponible en línea.
enlaces actualizados a la descripción ContextMenuPolicy: [QT5] (http://doc.qt.io/qt-5/qwidget.html#contextMenuPolicy-prop) y [qt4] (http://doc.qt.io/qt-4.8/qwidget.html#contextMenuPolicy-prop) – avtomaton
- 1. Unir los menús contextuales
- 2. Adelgazar menús contextuales de Eclipse
- 3. Menús contextuales de Windows Explorer con submenús usando pywin32
- 4. QListView evento hover?
- 5. ¿Cómo obtener QString de QListView elemento seleccionado en Qt?
- 6. cómo cambiar Qt qListView selección de icono resaltar
- 7. ¿Mostrar íconos en los menús contextuales del dock en OS X?
- 8. IntelliJ Idea abre los menús contextuales principales y autocompleta en la pantalla principal solamente
- 9. QT4 QstringListModel en QListView
- 10. Elementos personalizados en QListView
- 11. QListWidget o QListView con QItemDelegate?
- 12. menús contextuales de extensión de cromo, ¿cómo mostrar un elemento de menú solo cuando no hay selección?
- 13. ¿Cómo puedo restringir que los menús contextuales aparezcan solo para cierto texto seleccionado en una extensión de Chrome?
- 14. enlaces contextuales con Ninject 2,0
- 15. Menús horizontales
- 16. menús emergentes
- 17. ¿Debo eliminarlo? [Qt]
- 18. Eliminar una lista de elementos seleccionados en QListView
- 19. menús de WordPress como menús de varios niveles
- 20. Estilos contextuales de la barra de acciones
- 21. Sesiones contextuales de NHibernate en ASP.NET MVC
- 22. Qt Cómo hacer QStringList no editable
- 23. ¿Hay alguna manera de definir una QToolbar con botones y menús emergentes usando Qt Designer?
- 24. Manera de hacer botones de radio en menús de Qt 4.4.3
- 25. GWT: Menús en UiBinder
- 26. Menús emergentes GLUT
- 27. Gestión de memoria en Qt
- 28. Uso de QStyledItemDelegate en QListView con QSqlQueryModel
- 29. Obtención de texto de un QListView
- 30. seleccione primer elemento de QListView por defualt
customContextMenuRequested() es una señal, no una función Overridable –