6

私が読んでいる本から:

デフォルトでは、QListWidget は読み取り専用です。ユーザーにアイテムを編集してもらいたい場合は、QAbstractItemView::setEditTriggers(); を使用してビューの編集トリガーを設定できます。たとえば、QAbstractItemView::AnyKeyPressed の設定は、ユーザーが入力を開始するだけでアイテムの編集を開始できることを意味します。

したがって、コードで関数を呼び出します。

ui->listWidget->setEditTriggers(QAbstractItemView::AnyKeyPressed);

しかし、アイテムを選択して入力を開始しても、何も起こりません。

4

1 に答える 1

8

アイテム自体にも編集可能なフラグがあることがわかったので、アイテムを追加した後、すべてを繰り返して設定する必要がありました。今それは働いています。

// set the editable flag for each item
for (int ii = 0; ii < ui->listWidget->count(); ii++) {
    ui->listWidget->item(ii)->setFlags(ui->listWidget->item(ii)->flags() | Qt::ItemIsEditable);
}
// set the editable triggers for the list widget
ui->listWidget->setEditTriggers(QAbstractItemView::AnyKeyPressed);
于 2012-10-28T11:53:12.720 に答える