2011-12-28 8 views

cevap

3

Muhtemelen 2 şeylerden biri yapmak zorunda kalacaktır:

  1. Sen QItemSelectionModel alt sınıf ve ekleme ve sadece ona 2 sıra gelen öğeler eklemek ve böylece seçilen QModelIndex es silme için işlevleri uygulamak zorunda kalacak.
  2. Aşağıdaki gibi QItemSelectionModel yayar alıcı sinyaller için özel bir uygulama olan yapabilirsiniz:

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

selectionHandler içinde QModelIndex maddeden satırlar ve sütunlar denetler nesnedir QItemSelection ve satırın dışında kalan tüm dizinleri kaldırmak istediğiniz kullanıcı aralığını ve sonra da aşağıdakileri kaldırın:

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

ignore ve acceptselectionChanged sinyalinin sonsuz döngü işlemine girmediğinizden emin olmanız gerekir.

+0

Tamam, teşekkürler, sadece kullanıcılara çok fazla mesaj seçtikleri mesajını veren basit bir yoldan gideceğim, ama bu soruya cevap veriyor. –