2011-06-06 93 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);