2012-10-27 6 views
6

किताब मैं पढ़ रहा हूँ से:QListWidget :: setEditTriggers (QAbstractItemView :: AnyKeyPressed) काम नहीं कर रहा

डिफ़ॉल्ट रूप से, QListWidget केवल पढ़ने के लिए। यदि हम चाहते थे कि उपयोगकर्ता आइटम संपादित करें, तो हम QAbstractItemView :: setEditTriggers() का उपयोग करके दृश्य के संपादन ट्रिगर सेट कर सकते हैं; उदाहरण के लिए, की सेटिंग QAbstractItemView :: AnyKeyPressed का अर्थ है कि उपयोगकर्ता टाइप करने के लिए बस एक आइटम संपादित करना प्रारंभ कर सकता है।

तो, मैं अपने कोड में फ़ंक्शन को कॉल करें:

ui->listWidget->setEditTriggers(QAbstractItemView::AnyKeyPressed); 

लेकिन जब मैं किसी आइटम का चयन करें और लिखना प्रारंभ, कुछ नहीं होता।

उत्तर

6

यह पता चला है कि आइटमों में भी संपादन योग्य ध्वज है, इसलिए उन्हें जोड़ने के बाद मुझे उन सभी को फिर से चालू करना था और इसे सेट करना था। अब यह काम कर रहा है।

// set the editable flag for each item 
for (int ii = 0; ii < ui->listWidget->count(); ii++) { 
    ui->listWidget->item(ii)->setFlags(ui->listWidget->item(ii)->flags() | Qt::ItemIsEditable); 
} 
// set the editable triggers for the list widget 
ui->listWidget->setEditTriggers(QAbstractItemView::AnyKeyPressed); 
संबंधित मुद्दे