2010-09-09 20 views
7

मैं अब QTableView और QStandardItemModel का उपयोग कर रहा हूं।QTableView में किसी आइटम के संपादन मोड को कैसे ट्रिगर करें?

QTableView में, यदि आप किसी सेल को डबल-क्लिक करते हैं, तो यह सेल संपादन मोड में जाएगा और आप इसकी सामग्री को संपादित कर सकते हैं।

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

और अगर मुझे पता होना चाहिए कि संपादन कब खत्म हो रहा है (उपयोगकर्ता प्रेस "एंटर" दबाएं या संपादन मोड छोड़ने के लिए किसी अन्य आइटम पर क्लिक करें) ???

आपकी मदद के लिए धन्यवाद

उत्तर

7

देखें:

void QAbstractItemView::edit (const QModelIndex & index) [slot] 
void QAbstractItemView::closeEditor (QWidget * editor, QAbstractItemDelegate::EndEditHint hint) [virtual protected slot] 
void QAbstractItemView::editorDestroyed (QObject * editor) [virtual protected slot] 
+1

सच धन्यवाद! इससे मेरी सारी समस्या हल हो जाती है :) –

10

आप QAbstractItemView वर्ग के संपादित विधि का उपयोग करने के लिए दिया मॉडल सूचकांक के लिए संपादन को गति प्रदान करने में सक्षम होना चाहिए।

Pls, अगर नीचे एक उदाहरण आप के लिए काम करेगा देखें:

QModelIndex index = ui->tableView->model()->index(0, 0, QModelIndex()); 
ui->tableView->edit(index); 

आशा है कि यह मदद करता है, का संबंध

+0

आपकी मदद के लिए बहुत बहुत धन्यवाद, यह सहायक है और उदाहरण काम करता है :) यह एक गंदा है कि मैं सही उत्तरों को कई उत्तरों नहीं दे सकता, इसलिए मैं आपको वोट दे सकता हूं ^^ –