Non ho visto nessun segnale/slot/funzione che possa dirmi se un widget è selezionato con il mouse? È possibile avere una funzione di questo tipo per dirmi se è selezionato QWidget attuale? E come posso distinguere tra "il widget corrente è selezionato" e "uno dei suoi widget figlio è selezionato?"Qt: come rilevare se un widget è selezionato?
risposta
È possibile verificare la messa a fuoco su un widget utilizzando la funzione hasFocus()
. La proprietà focus
mantiene se il widget ha lo stato attivo di input della tastiera o meno. È inoltre possibile ottenere il widget corrente dell'applicazione che ha lo stato attivo utilizzando QApplication::focusWidget()
. È possibile ottenere un puntatore al widget focalizzato come:
QWidget * fw = qApp->focusWidget();
Quando l'oggetto è stato attivato è cambiato QApplication::focusChanged(QWidget *old, QWidget *now)
segnale è emitted.You possibile collegarlo ad uno slot in cui si fa quello che mai ti piace in base al cambiamento di messa a fuoco.
Ho usato un qtimer per controllare l'output di hasFocus() di determinati 'customWidget' a 1Hz. Non importa quanto clicco su 'customWidget', l'output è sempre falso? – Nyaruko
Vuoi dire che restituisce sempre false? Qual è il tipo di widget? – Nejat
Ciao, ho scoperto che ho bisogno di impostare FocusFolicy prima che potessi concentrarmi su questo widget. Ma come posso cancellare il focus del widget corrente quando clicco da qualche altra parte (non sul widget)? Devo farlo manualmente o Qt ha alcune bandiere per questo? – Nyaruko
- 1. QT Come incorporare un'applicazione nel widget QT
- 2. Come widget all'interno di un altro widget in QT?
- 3. Qt Quick vs. Qt Widget
- 4. Quando un widget Qt ottiene un paintEvent?
- 5. Come rilevare se è presente un microfono
- 6. qt - widget - posizionamento
- 7. Come rilevare l'inattività dell'utente in Qt?
- 8. Verificare se è selezionato un valore ComboBox
- 9. Qt QMainWindow cancellazione widget centrale
- 10. Qt Mostra/nascondi animazione widget
- 11. Combina più widget in uno in Qt
- 12. Come modificare lo sfondo di un widget genitore quando è attivo un widget figlio?
- 13. Come sostituire un Widget con un altro usando Qt?
- 14. Come posizionare un widget su un altro in Qt
- 15. Qt indicatore di caricamento widget
- 16. rilevare se un oggetto è vuoto
- 17. Elimina Dock Widget in Qt Designer?
- 18. Come posso rilevare se l'utente è stato selezionato dalle opzioni createChooser?
- 19. Qt: mostra l'immagine sul widget
- 20. Come determinare se un motore TTS specifico è selezionato (abilitato)?
- 21. come verificare se un file è stato selezionato usando javascript?
- 22. Git: come sapere se un commit è selezionato in ciliegio?
- 23. Come rilevare se un dato numero è un numero intero?
- 24. Rilevare se NSString è un numero float
- 25. Rilevare se un elemento è realmente visibile
- 26. Qt: Come forzare un widget nascosto a calcolarne il layout?
- 27. Qt Designer - Come ottenere un widget per estendere le colonne?
- 28. Qt: Come aggiungere un widget a destra di QStatusBar
- 29. Widget Qt personalizzati con python per Qt Designer
- 30. Come utilizzare le funzioni OpenGL su un QT OpenGL Widget?
La selezione generale di supporto 'QWidged'? –
Selezionando intendete focalizzato? – Nejat
@Nejat, anche questo è Ok. Quello che voglio ottenere è quando si fa clic con il mouse su un Widget, esso imposta un certo valore su 1, quando il mouse fa clic su qualsiasi altra cosa, imposta quel valore su 0. – Nyaruko