मैं QTestLib framework का उपयोग कर QTableView में कस्टम वैलिडेटर के लिए यूनिट परीक्षण लिख रहा हूं। सबसे बुनियादी परीक्षा मामलों में से एक को इस तरह वर्णित किया जा सकता है:क्यूटेबल यूनिट परीक्षण से आप QTableView सेल को कैसे संपादित कर सकते हैं?
डबल कॉलम और चौथी पंक्ति में तालिका कक्ष पर डबल क्लिक करें, और इसकी सामग्री में '5' संख्या को संलग्न करें।
यह बस मॉडल या कुछ भी में मान बदलने के लिए पर्याप्त नहीं है, परीक्षण का मामला इस तरह यह प्रदर्शन करेगा:
- डबल तालिका सेल संपादन मोड में स्थापित करने के लिए क्लिक करें
- [अंत] कुंजी दबाएं।
- [5] कुंजी दबाएं।
नोट: This question कैसे कोड से संपादन मोड में कोई तालिका सेल स्थापित करने के लिए, फिर भी इकाई परीक्षण एक मानव उपयोगकर्ता है, यानी माउस/कुंजीपटल कार्यों की संभावनाओं पर कायम करने की कोशिश करेगा पर एक जवाब है।
मुझे पता चला है कि सेल की एक्स/वाई स्थिति QTableView::columnViewportPosition(int) और QTableView::rowViewportPosition(int) का उपयोग करके पुनर्प्राप्त की जा सकती है। हालांकि, निर्दिष्ट स्थान पर डबल क्लिक QTest::mouseDClick(...) का उपयोग कर न सेल का चयन करता है और न ही संपादन मोड में सेट:
// Retrieve X/Y coordinates of the cell in the third column and the fourth row
int xPos = m_pTableView->columnViewportPosition(2);
int yPos = m_pTableView->rowViewportPosition(3);
// This does not work
QTest::mouseDClick(m_pTableView, Qt::LeftButton, QPoint(xPos, yPos));
मैं परीक्षण का मामला जो मैं ऊपर वर्णित है, माउस/कुंजीपटल कार्रवाई केवल का उपयोग कर कैसे लागू कर सकते हैं?
पुनश्च: मैं Windows XP 32 बिट और क्यूटी के तहत इस कोशिश कर रहा हूँ 4.6.1
यह वही उत्तर है जिसकी मुझे आवश्यकता है, आपको बहुत धन्यवाद :) – astrojuanlu
इन + int और x10 के लिए + 5 और + 10 क्या है - int xPos = m_pTableView-> columnViewportPosition (2) + 5; int yPos = m_pTableView-> rowViewportPosition (3) + 10; – NiladriBose
@ नीलाद्री बोस: ये पिक्सेल की संख्या हैं। चूंकि हम क्लिक अनुकरण कर रहे हैं, हम शायद सेल के अंदर कहीं भी क्लिक करना चाहते हैं, न कि इसकी सीमा पर, बस यह सुनिश्चित करने के लिए कि सही सेल चुना जाता है। –