मैं QWidgets
के साथ QGridLayout
भरना चाहता हूं। QWidgets
को शीर्ष-बाएं से ऊपर-दाएं फैशन में दिखाई देने की आवश्यकता है और QWidgets
से प्रत्येक पंक्ति भरने के बाद नीचे नीचे भरने की आवश्यकता है। एक समान और परिचित जीयूआई का एक उदाहरण यह है कि ऐप्पल आईफोन या आईपैड की होम स्क्रीन पर अपने ऐप्स कैसे टाइप करता है। ऐप्स शीर्ष-बाएं से ऊपर-दाएं जाते हैं और प्रत्येक पंक्ति भरने के बाद नीचे जाने के लिए आगे बढ़ते हैं।कोई QGridLayout को ऊपर-बाएं से दाएं कैसे भरता है?
अभी, जब भी मैं तत्व जोड़ता हूं, वे स्क्रीन की पूरी चीज लेते हैं और/या एक दूसरे के बगल में नहीं जोड़े जाते हैं।
यह मैं
m_gridLayout = new QGridLayout(this);
this->setLayout(m_gridLayout);
m_gridLayout->addWidget(widgetToBeAdded, m_currentRow, m_currentColumn, Qt::AlignLeft);
मैं m_currentColumn और m_currentRow अद्यतन करने के लिए अपेक्षा के अनुरूप आगे बढ़ना क्या कर रहा हूँ के उदाहरण कोड है। कॉलम की एक निश्चित राशि के बाद, मैं इसे अगली पंक्ति में बदलने के लिए कहता हूं, और कुछ भी नहीं होता है। मैंने डिबगिंग के माध्यम से पुष्टि की है कि यह वास्तव में सही पंक्तियों और स्तंभों को थका रहा है।)
आखिरकार, मुझे QScrollArea
पर फेंकने की आवश्यकता होगी ताकि कोई ग्रिड को स्क्रॉल कर सके।
प्रत्येक QWidget
का आकार समान होगा। अगर मुझे ग्रिड को व्यवस्थित करने के संबंध में कोई मदद मिल सकती है, तो इसकी सराहना की जाएगी।
संपादित करें: नीचे दिए गए उत्तर का उपयोग करके, मैंने अपने आइटम को सही क्रम में क्रमबद्ध करने में कामयाब रहा है। हालांकि, ऊर्ध्वाधर दिशा में सभी तत्वों के बीच एक बड़ी मात्रा में जगह है। वर्टिकल स्पेसिंग संपत्ति को बदलकर यह obviated नहीं है, जैसा कि मुझे लगता है। क्या कोई जानता है कि कैसे आगे बढ़ना है?