2011-06-06 20 views
6

Aşağıdaki kodu kullanarak bir listeye iki öğe ekliyorum. Şimdi "Weekend Plus" ı liste öğesi içinde seçilen öğe olarak ayarlamak istiyorum, bunu nasıl yaparım?Seçilen öğeyi QListWidget'de nasıl ayarlayabilirim?

QStringList items;  
items << "All" << "Weekend Plus" ; 
ui->listWidgetTimeSet->addItems(items); 

cevap

13

deneyin: bildiğin anlamına gelir

QStringList items; 
items << "All" << "Weekend Plus" ; 
listWidgetTimeSet->addItems(items); 
listWidgetTimeSet->setCurrentRow(1); 

Ama Weekend Plus" olduğunu ikinci sırada ve remembe gerekiyor r, diğer eşyalarda.

Ya bunu böyle yapın: yardımcı

QListWidgetItem* all_item = new QListWidgetItem("All"); 
QListWidgetItem* wp_item = new QListWidgetItem("Weekend Plus"); 
listWidgetTimeSet->addItem(all_item); 
listWidgetTimeSet->addItem(wp_item); 
listWidgetTimeSet->setCurrentItem(wp_item); 

Umut.

DÜZENLEME:

yorumunuza göre, ben düzenlemeyi kullanmanızı öneririz öğe görünümleri için tetikler. Sadece eklemek istediğiniz şeyi yazarak ve dönüş tuşuna basarak veya girme tuşuna basarak öğeleri doğrudan eklemenizi sağlar. Eklediğiniz öğe seçilidir ve şimdi QListWidget öğesinde bir öğe olarak görünür. Daha fazla bilgi için the docs adresine bakın.

Yeni öğenizi başka bir yere girmek isterseniz, elbette bir yol da vardır. Diyelim ki bir satır düzenlemeniz var ve öğeyi oraya girdiğiniz isimle ekliyorsunuz. Şimdi, listenin bu yeni öğeye geçmek için eklendiği ListWidget öğesini istiyorsunuz. Yeni öğenin son konumda olduğu varsayılmıştır (en son eklenmiş olduğundan) geçerli satırı son sıraya değiştirebilirsiniz. i bir metin kutusu varsa ve ben o metin girmek ve derken o liste olarak eklenen eklemek şimdi o metin i istiyorum varsayalım work.Now öyle

listWidgetTimeSet->setCurrentRow(listWidgetTimeSet->count() - 1); // size - 1 = last item 
+0

Teşekkür (Eğer varsa count() da gizli öğeleri sayar Not) seçilmesi gereken liste kutusuna eklendi. – user662285

+0

Düzenlenmiş gönderim bölümüne bakın. – Exa

6

Belki

ui->listWidgetTimeSet->item(1)->setSelected(true); 

Ya bu şekilde yapabileceği de

ui->listWidgetTimeSet->setCurrentRow(1); 
İlgili konular