Formumda, kontrol edilebilir QListWidgetItems içeren bir QListWidget'i var. Kontrol edilen/işaretlenmemiş bir QListWidgetItem olayını yakalamanın bir yolunu arıyorum. Bunun için böyle bir sinyal görmüyorum ama yanılıyor olabilirim. Şu anda yapmakta olduğum QListWidget :: itemClicked() sinyalini kullanmak ve QListWidgetItem'in checkState'ini kontrol etmek istiyorum, ancak istediğim bu değil çünkü bu olay öğeye tıklandığında her seferinde gerçekleşir, sadece onay işareti değiştirildi değil . Birileri yardım edebilir mi? Teşekkürler!Qt/C++: Bir QListWidgetItem işaretlendiğinde kullanılan sinyal?
cevap
Görünüşe göre böyle bir sinyal sağlanmadıysa, en iyi bahsiniz QListWidget::itemChanged(QListWidgetItem* item)
'u kullanmak ve elde edilen sonucu item->checkState()
taramaktır. Bu, itemClicked
Bu korunan bir sinyaldir. Açıklandığı gibi bu hatayı kullandığımda bir hatayla karşılaşacağım [https://stackoverflow.com/q/48059796/1080355]. – VSB
kullanımı hakkında ufak bir iyileştirme olmalıdır. Ek bir seçenek, QListView
ile kendi QAbstractListModel
'unuzu kullanmaktır. İlk önce kendi yönetim kodunuzu eklemeniz gereken bazı ekstra kodlar ekler. Ancak daha düşük seviyeli bir erişim elde edersiniz. Temel olarak QListView
modelinize ne yapması gerektiğini sorar. Aynı zamanda girişi tekrar çağırabileceğiniz liste modelinize de aktarır.
Alternatif olarak, QStandardItemModel
alt sınıfını seçebilir ve onay kutusunu değiştirmeyle ilgili belirli düzenlemeleri yakalayabilirsiniz.
- 1. Özel UIButton işaretlendiğinde vurgulamıyor
- 2. PyQt5 QMediaPlayer'a bir sinyal gönderiliyor
- 3. Neden SignalProducer bir Sinyal vermiyor?
- 4. İfadede kullanılan [] ifadede kullanılan
- 5. Onay kutusu işaretlendiğinde formu gönder - öğretici
- 6. AngularJS e2e testlerinde bir onay kutusu işaretlendiğinde nasıl onaylanır?
- 7. İçinde bir kelime işaretlendiğinde UITextView dokunma olayını işleme
- 8. bir histogram olarak işaretlendiğinde Gauss formunun olan veri histogram
- 9. sinyal SIGABRT hatası görünümüKontrolör
- 10. Periyodik sinyal alarmı
- 11. Simulink sinyal veri türü
- 12. "Sinyal 15 alındı"
- 13. Sinyal numarası isim mi?
- 14. Sinyal çıkışı arduino
- 15. Veri sinyal gücünü belirleyin
- 16. bellek sızıntısı - sinyal 9
- 17. Android emulator sinyal gücü
- 18. Erlang Linux sinyal işleme
- 19. Android Testing - Sinyal Kalitesi
- 20. Django: post_save sinyal
- 21. Sinyal SIGFPE soru
- 22. Program alınan sinyal SIGABRT
- 23. Yayılan Sinyal Algılanmadı
- 24. Piramidin bir Sinyal/Slot sistemi var
- 25. Qt kullanarak boost :: shared_ptr bir sinyal/yuvada
- 26. Pyqt: QLineEdit'in odaklandığı bir sinyal nasıl alınır?
- 27. Valgrind içindeki bir işleme sinyal gönderilsin mi?
- 28. Quantstrat paketinde bir sinyal eklerken hata oluştu
- 29. Qt - sinyal yerine yuvalar yayar
- 30. Sinyal yuvası bağlantı sırasını değiştirin
Bir öğeyi işaretlediğimde veya işaretini kaldırdığımda tetiklenen QListWidget :: itemChanged() sinyalini kullanarak bunu aşabileceğimi düşünüyorum, ancak öğenin değerini düzenlerseniz de tetiklenir. şimdi yapmıyor, hala kusurlu bir çözüm. – Joseph
QListWidget :: itemClicked() 'ile ilgili bir başka sorun, klavye kullandığınızda yanmıyor olmasıdır; ör., Kontrol edilen durumu değiştirmek için Space tuşunu kullanın. – Hossein