18

以下のコードを使用して、listwidgetに2つのアイテムを追加しています。リストウィジェットの選択項目として「ウィークエンドプラス」を設定したいのですが、どうすればよいですか?

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

2 に答える 2

28

あなたはこのようにそれをすることができます:

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

しかし、それはあなたが「ウィークエンドプラスは2列目にあり、他のアイテムの場合に備えてそれを覚えておく必要がある」ということを知っていることを意味します。

またはあなたはそのようにします:

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
于 2011-06-06T09:21:27.757 に答える
9

多分

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

また試してみてください

    ui->listWidgetTimeSet->setCurrentRow(1);
于 2011-06-06T09:18:36.990 に答える