5

QTableWidget で選択された行/列を制限するにはどうすればよいですか? 正確に 2 つの列と任意の数の行を選択するには、ユーザーに連続選択 (既に行われています) を使用させる必要があります。

ありがとう!

4

1 に答える 1

3

おそらく、次の 2 つのいずれかを行う必要があります。

  1. QItemSelectionModel選択した es を追加および削除するための関数をサブクラス化および実装QModelIndexして、2 行の項目のみを追加する必要があります。
  2. QItemSelectionModelこれを行うには、次のようなシグナルをキャッチするためのカスタム実装を用意します。

    connect(tableWidget->selectionModel(), SIGNAL(selectionChanged(QItemSelection &, QItemSelection &)), selectionHandler, SLOT(updateSelection(QItemSelection &, QItemSelection &)));

は、アイテムselectionHandlerの行と列をチェックし、ユーザーに保持してもらいたい行の範囲外にあるすべてのインデックスを削除するオブジェクトです。QModelIndexQItemSelection

selectionHandler->ignoreSelectionUpdateSignal();
tableWidget->selectionModel()->select(QItemSelection&);
selectionHandler->acceptSelectionUpdateSignal();

また、無限ループ処理信号に入らないようにする必要がありますignoreacceptselectionChanged

于 2011-12-29T02:51:54.750 に答える