2009-04-12 19 views
7

Tengo un QTableView en la interfaz de usuario principal de mi programa. Me gustaría mostrar el menú emergente cuando el usuario hace clic derecho en las celdas de la tabla y toma las medidas adecuadas cuando se selecciona una opción del menú.Creación de un menú emergente en Qt para QTableView

Estoy usando Qt Creator 1 (Qt versión 4.5). ¿Cómo puedo hacer eso?

Respuesta

22

Compruebe la señal customContextMenuRequested para obtener el evento, y utilice un QMenu para el menú. Use QTableView::indexAt para averiguar en qué celda se hizo clic en función de las coordenadas proporcionadas a la señal y realice la acción adecuada cuando se hace clic en un elemento del menú.

+2

Deberá llamar a menu.exec (const QPoint &) para visualizarlo. Asegúrese de traducirlo a las coordenadas apropiadas: menu.exec (mapToGlobal (point), 0) –

+5

O simplemente use menu.exec (QCursor :: pos()) http://doc.trolltech.com/latest/ qmenu.html # exec – amree

+0

Se puede llamar al menú contextual desde el atajo de teclado, por lo que la posición del cursor no siempre es el punto de llamada correcto. –

Cuestiones relacionadas