I am adding two items to a listwidget using the code below. Now I want to set "Weekend Plus" as selected item in the listwidget, how do I do that?
QStringList items;
items << "All" << "Weekend Plus" ;
ui->listWidgetTimeSet->addItems(items);
I am adding two items to a listwidget using the code below. Now I want to set "Weekend Plus" as selected item in the listwidget, how do I do that?
QStringList items;
items << "All" << "Weekend Plus" ;
ui->listWidgetTimeSet->addItems(items);
你可以这样做:
QStringList items;
items << "All" << "Weekend Plus" ;
listWidgetTimeSet->addItems(items);
listWidgetTimeSet->setCurrentRow( 1 );
但这意味着你知道“Weekend Plus 在第二排,你需要记住这一点,以防你有其他项目。
或者你这样做:
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
有关更多信息,请参阅文档。
如果您想在其他地方输入新项目,当然也有办法。假设您进行了行编辑,并使用您在此处输入的名称添加了项目。现在,您希望已添加项目的 ListWidget 更改为该新项目。假设新项目位于最后一个位置(因为它是最后添加的),您可以将当前行更改为最后一行。(请注意,count()
如果您有任何隐藏项目,也计算隐藏项目)
listWidgetTimeSet->setCurrentRow( listWidgetTimeSet->count() - 1 ); // size - 1 = last item
也许
ui->listWidgetTimeSet->item(1)->setSelected(true);
也试试
ui->listWidgetTimeSet->setCurrentRow(1);