[英]How do I set the selected item in a QListWidget?
我正在使用下面的代碼將兩個項目添加到列表小部件。 現在我想將“Weekend Plus”設置為列表小部件中的選定項目,我該怎么做?
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 更改為該新項目。 假設新項目在最后一個 position 上(因為它是最后添加的)您可以將當前行更改為最后一行。 (請注意,如果您有任何隱藏項目, count()
也會計算隱藏項目)
listWidgetTimeSet->setCurrentRow( listWidgetTimeSet->count() - 1 ); // size - 1 = last item
也許
ui->listWidgetTimeSet->item(1)->setSelected(true);
也試試
ui->listWidgetTimeSet->setCurrentRow(1);
使用原始文本設置當前 QList raw:
ui->List->setCurrentItem(ui->List->findItems("Raw x Content",Qt::MatchExactly)[0]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.