2011-12-28 10 views
5

में चयन को सीमित करने के लिए कैसे मैं QTableWidget में चयनित पंक्तियों/स्तंभों को सीमित करने के बारे में कैसे जाउंगा? मुझे उपयोगकर्ता को दो कॉलम और पंक्तियों की किसी भी राशि का चयन करने के लिए एक संगत चयन (पहले से किया गया) का उपयोग करने के लिए मजबूर करने की आवश्यकता है।एक QTableWidget

धन्यवाद!

उत्तर

3

आप शायद 2 चीजों में से एक करना होगा:

  1. आप QItemSelectionModel उपवर्ग और जोड़ने और चयनित QModelIndex तों को हटाने ताकि आप केवल इसे करने के लिए 2 पंक्तियों से आइटम जोड़ने के लिए कार्यों को लागू करने के लिए होगा।
  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(); 

ignore और accept आपको यह सुनिश्चित करने की ज़रूरत है कि आप अनंत लूप प्रोसेसिंग selectionChanged सिग्नल में न आएं।

+0

ठीक है, धन्यवाद, मुझे लगता है कि मैं बस एक सरल तरीके से जाऊंगा जो उपयोगकर्ता को एक संदेश देता है अगर वे बहुत अधिक चुनते हैं, लेकिन यह मेरे प्रश्न का उत्तर देता है। –

संबंधित मुद्दे