Yalnızca metin satırlarını görüntüleyen üçüncü tarafa ait QListView
nesnesinin bir işaretçisine sahibim. Bu metin dizisini elde etmenin en iyi yolu nedir?Bir QListView'dan metin elde etme
cevap
modeli, erişilebilir QListView için, öğeleri tutar. Böyle bir şey yapabilirsiniz:
QListView* view ; // The view of interest
QAbstractItemModel* model = view->model() ;
QStringList strings ;
for (int i = 0 ; i < model->rowCount() ; ++i)
{
// Get item at row i, col 0.
strings << model->index(i, 0).data(Qt::DisplayRole).toString() ;
}
Ayrıca metin yazıldığında güncellenen dizeleri elde etmek istiyorum söz - Eğer dizeleri ayıklar işlevinize modelin
dataChanged()
sinyalini bağlayarak yapabilirsiniz.
QAbstractItemModel::dataChanged()
'a bakın.
QListView nesnesini kök QModelIndex için sorabilir ve bunu kardeş/çocuk yöntemleri kullanarak farklı girişler üzerinde yinelemek için kullanabilirsiniz. Dizindeki veri yöntemini Qt :: DisplayRole olarak belirtilen rolle çağırarak her diziyle ilişkilendirilmiş metne erişebilirsiniz. Daha fazla ayrıntı için
aşağıdaki belgelere bakın:
QAbstractItemView - üst sınıf QListView::model()
tarafından
ve http://doc.trolltech.com/4.5/qvariant.html#toString –
teşekkürler, deneyin. Yeni metin yazıldığında bunu yapmak için bağlanabileceğim bir yuva var mı? –
- 1. Önyükleme sırasında karmaşık bir ızgara elde etme
- 2. C# winforms'ta daha iyi metin oluşturma kalitesi elde etme
- 3. Bir hata hata numarasını elde etme
- 4. php kullanarak veritabanından bir değer elde etme
- 5. Bir dizi sonucu elde etme json_decode
- 6. Bahar: Ben elde etme yöntemiyle
- 7. JavaScript kullanarak kanonik URL elde etme
- 8. İki resmin oran farkını elde etme
- 9. Bufferedreader öğesinden boş değer elde etme
- 10. gcd programım ile yanlış değer elde etme
- 11. Uzun zaman damgasından saf bir zaman unsuru elde etme
- 12. Android - wrap_content için ayarlanmış bir düğmenin genişliğini elde etme
- 13. Bir görüntü manipulasyonundan sonra yanlış renkler elde etme
- 14. Android - bir parça/sekmede tarihçiden değer elde etme
- 15. Java dilinde bir dilin unicode karakterleri elde etme
- 16. Birden çok öğede bir üst değer elde etme
- 17. Java yansıması: Bir nesneden alan değeri elde etme, sınıfını bilmeyen
- 18. Bir alt sorguya sahip en düşük değeri elde etme
- 19. Başka bir Sınıftan değişken değer elde etme parçası
- 20. Tanımak için Safari elde etme <main> HTML 5
- 21. Metin girişini reactJs ile simüle etme TestUtils
- 22. "Bu yeri paylaş" dan Koordinatlar elde etme Google Haritalar'da
- 23. Android'de dokunmatik etkinlikte görüntünün yerinde (veya pikselinde) renk elde etme
- 24. mysqli dosyasında getirme hatası [Nesne dışı özellik elde etme]
- 25. VBA kullanarak bir metin dosyasının zaman damgasını kontrol etme
- 26. Sınırlandırılmış bir metin dosyasını liste görünümüne yüklemeden önce tespit etme
- 27. UI iOS'u Test Etme, Güvenli Metin Girişini Seçme textField
- 28. MarkItUp zengin metin editörü önizlemesini ASP.NET MVC uygulamasıyla entegre etme
- 29. jQuery ile aynı diziye sahip birden çok <input> ile bir Array elde etme
- 30. Tam ad ayrıntılarına ve telefon numaralarına sahip tek bir imleç elde etme
bu doğru mu? QObject :: connect (model, SIGNAL (dataChanged (QModelIndex, QModelIndex)), client_, SLOT (onText())) Burada client_, QObject türetilen bir sınıftır ve onText, ortak yuvalar altında bildirilmiştir. –
Evet, bu fikir. OnText() imzanız dataChanged() olanlar ile de eşleşiyorsa, yalnızca listenin tamamı yerine verilerin değiştiği dizinler arasında geçiş yapabilirsiniz. – swongu
bu şimdi benim satırım: QObject :: connect (model, SIGNAL (dataChanged (const QModelIndex, const QModelIndex)), client_, SLOT (onText (const QModelIndex, const QModelIndex))); doğru döndürür, ancak "onText" işlevine koyduğum cout'u göremiyorum. Herhangi bir fikir? –