2009-12-04 10 views
5

का उपयोग कर QTableView में उपयोगकर्ता संपादन योग्य चेकबॉक्स कैसे जोड़ सकता हूं मेरे पास QTableView और QStandardItemModel है। क्या कोई कॉलम में चेकबॉक्स शामिल हो सकते हैं जो उपयोगकर्ता का उपयोग किए बिना या अमूर्त मॉडल कक्षाओं का उपयोग किए बिना संपादन योग्य हैं? ऐसा नहीं है कि मैं ऐसा नहीं कर सकता, मैं सिर्फ कोड को कम करना चाहता हूं, मुझे सरल चेक बॉक्स के लिए इसे अधिक मात्रा में मिल जाएगा।मैं केवल QStandardItemModel

model.setData(index, Qt::Unchecked,Qt::CheckStateRole) का उपयोग करके यह चेकबॉक्स बनाता है लेकिन यह उपयोगकर्ता संपादन योग्य नहीं है (चेकबॉक्स के बगल में पाठ है)।

मैंने modelTX.setData(index, FALSE) का उपयोग किया लेकिन यह एक कॉम्बो बॉक्स बनाता है जिसमें ट्रू एंड फाल्स शामिल है।

मैं setItemData कोशिश करूंगा।

उत्तर

14

कृपया, तो देखें कि निम्न उदाहरण आप के लिए काम करेंगे:

QStandardItemModel* tableModel = new QStandardItemModel(); 
// create text item 
tableModel->setItem(0, 0, new QStandardItem("text item")); 
// create check box item 
QStandardItem* item0 = new QStandardItem(true); 
item0->setCheckable(true); 
item0->setCheckState(Qt::Checked); 
item0->setText("some text"); 
tableModel->setItem(0, 1, item0); 
// set model 
ui->tableView->setModel(tableModel); 

आशा है कि यह मदद करता है, उत्तर के लिए संबंध

+0

THX। मैं सोमवार को इसे चलाऊंगा जब मैं काम पर वापस आऊंगा लेकिन मुझे लगता है कि यह काम करेगा। –

+0

यह काम करता है, धन्यवाद। लेकिन अगर चेक किया गया है या नहीं तो प्रत्येक चेकबॉक्स को कैसे जांचें? –

+1

@ सुदा.नीज़ 'item0-> चेकस्टेट() 'का उपयोग इस उद्देश्य के लिए करें। पुनश्च। आमतौर पर प्रत्येक सेटर विधि के लिए क्यूटी का उपयोग करते समय एक ला 'सेटसोमिंग()' 'कुछ()' नामक गेटर होता है। –

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