2011-12-28 7 views
5

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

ありがとうございます!

答えて

3

あなたはおそらく2つのいずれかを実行する必要があります:あなたはQItemSelectionModelのサブクラスを作成し、あなただけの2行から、それに項目を追加するように選択QModelIndex ESを追加および削除するための機能を実装する必要があります

  1. を。
  2. 次のようなQItemSelectionModelが発する引く信号用のカスタム実装を持っていることによってこれを行うことができます。

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

selectionHandlerがでQModelIndexアイテムの行と列をチェックするオブジェクトですQItemSelectionを削除し、ユーザーが保持したい行範囲外のすべてのインデックスを削除し、次に:

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

ignoreaccept信号を処理する無限ループにならないようにする必要があります。selectionChangedシグナル。

+0

申し訳ありませんが、私はちょうど彼らがあまりにも多くを選択した場合、ユーザーにメッセージを与えるより簡単な方法で行くと思うが、それは私の質問に答える。 –

関連する問題