2011-06-06 33 views
6

我使用下面的代碼將兩個項目添加到listwidget。現在我想將「Weekend Plus」設置爲listwidget中的選定項目,我該怎麼做?如何在QListWidget中設置所選項目?

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

回答

13

嘗試你既可以做這樣的:

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

但是,這將意味着你知道「週末加在第二排,你需要記住r,如果你有其他物品。

或者你那樣做:

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); 

希望有所幫助。

編輯:

根據您的意見,我建議使用編輯觸發器項目的意見。它允許你直接添加項目,只需輸入你想添加的項目,然後按回車或回車鍵即可。您剛添加的項目被選中,現在顯示爲QListWidget中的一個項目。

listWidgetTimeSet->setEditTriggers(QAbstractItemView::DoubleClicked); // example 

請參閱the docs瞭解更多信息。

如果您想在其他地方輸入新項目,當然也有一種方法。比方說,你有一個行編輯,並添加你在那裏輸入的名稱的項目。現在你需要添加項目的ListWidget更改爲新項目。假設新項目位於最後一個位置(因爲它已被最後添加),您可以將當前行更改爲最後一行。 (注意:count()也算隱藏的項目,如果您有任何)

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

由於它的work.Now假設我有一個文本框,當我在輸入文字,並說加將其添加到列表框中,現在我想,我的文字已添加到應該選擇的列表框中。 – user662285 2011-06-06 09:50:35

+0

看到我編輯的帖子。 – Exa 2011-06-06 10:15:00

6

也許

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

ui->listWidgetTimeSet->setCurrentRow(1); 
相關問題