È necessario visualizzare un menu di scelta rapida ogni volta che si fa clic su una scheda e deve rispondere a tale scheda specifica. C'è un modo per farlo senza sottoclassi?QTab menu di scelta rapida del menu contestuale
risposta
modo semplice, ma forse non proprio quello che vi serve:
- Collegare al segnale 'CurrentChanged' della vostra QTabWidget
- Nello slot che è collegato al segnale, creare un QMenu e popolarlo come necessario
- Infine, nella fessura che è collegato al segnale, chiamare QMenu :: exec (QCursor :: pos())
questo otterrà una funzione chiamata ogni volta che si modifica la scheda (non nece cliccato di soppiatto) e genera un menu nella posizione corrente del mouse.
modo complicato, che fa esattamente ciò che si descrive:
- chiamata QObject::installEventFilter sul QTabWidget, in modo che tutti gli eventi sul tuo QTabWidget vengono reindirizzati al proprio oggetto.
- Nel proprio oggetto, reimplementare QObject::customEvent e gestire tutti gli eventi QMouseEvent.
- Compilare un QMenu secondo necessità e chiamare QMenu :: exec nella posizione del QMouseEvent che si sta gestendo.
Penso che sia necessario creare la propria classe che eredita da QTabWidget ed eseguire l'override della funzione protetta MousePressEvent (QMouseEvent) in cui è possibile creare il menu di scelta rapida con il tasto destro del mouse.
-1 poiché ha chiesto specificamente un modo per ottenere ciò che desidera senza sottoclasse QTabWidget. –
Se non ha familiarità con installEventFilter, l'ereditarietà è un modo più semplice. Lascia che provi prima la tua seconda soluzione. –
- 1. ActionBarSherlock menu di scelta rapida colore del menu del menu
- 2. Qt - Menu di scelta rapida
- 3. Modifica menu di scelta rapida Nautilus originale
- 4. Il menu di scelta rapida sull'elemento figlio nidificato mostra anche il menu di scelta rapida
- 5. menu di scelta rapida jquery disattiva voci di menu
- 6. jQuery Menu contestuale del tasto destro Aiuto!
- 7. Assegnare la scelta rapida da tastiera alle voci del menu di scelta rapida in Progettazione report
- 8. Menu di scelta rapida nell'app Console
- 9. menu di scelta rapida di navigazione CSS
- 10. Menu di scelta rapida sotto Winforms
- 11. Menu di scelta rapida da un ListFragment
- 12. Menu contestuale WPF e ListView
- 13. jstree rimuovi elementi predefiniti dal menu di scelta rapida
- 14. Posso personalizzare il menu di scelta rapida di AvalonDock?
- 15. PyQt e menu di scelta rapida
- 16. Menu di scelta rapida ListWall UWP
- 17. Sottomenu WPF per menu di scelta rapida
- 18. Menu di scelta rapida su Android WebView
- 19. Menu di scelta rapida non selezionabile Intestazione
- 20. menu di scelta padre?
- 21. Menu di scelta rapida della scheda per WeifenLuo.WinFormsUI.Docking
- 22. C# Aggiungi checkbox al menu contestuale WinForms
- 23. Come chiudere l'applicazione WPF dal menu di scelta rapida?
- 24. Come impostare un titolo per un menu di scelta rapida?
- 25. Creazione di menu di scelta rapida per Win32 API
- 26. C#: menu di scelta rapida Listbox per Listboxitems (WPF)
- 27. Utilizzo del menu di scelta rapida TEdit per TRichEdit
- 28. Menu di scelta rapida riga Datagrid WPF - Disabilita la voce di menu
- 29. Menu contestuale iPhone/iPad
- 30. Crea elemento personalizzato in jsTree Menu contestuale
La tua prima soluzione facile non funziona come vuole. Il menu contestuale non verrà visualizzato quando il clic del mouse viene eseguito nella scheda corrente. L'unica soluzione sembra essere la tua seconda. –