में विजेट और लेआउट हटाने के बारे में हटाने के बारे में (मैं क्यूटी 4.7, विंडोज 7, 64 बिट का उपयोग करता हूं)।क्यूटी 4
मैंने एक कस्टम टेबल बनाया है। प्रत्येक पंक्ति विजेट के साथ एक क्षैतिज लेआउट है। पंक्तियों को आसानी से पहुंचने के लिए क्यूलिस्ट में रखा जाता है, और बच्चे भी। पंक्तियों को पैरेंट विजेट के अंदर भी जोड़ा जाता है।
यदि मैं पैरेंट विजेट का आकार बदलता हूं, तो मैं नए आकार की गणना करता हूं, सबकुछ हटा देता हूं, और फिर से इसे फिर से बना देता हूं।
मेरी समस्या यह है कि मैं किसी भी विजेट को हटाना नहीं चाहता हूं। केवल जब मैं टेबल साफ़ करता हूं, तो मैं करता हूं।
चूंकि मेरे पास एक QList के अंदर और पैरेंट लेआउट के अंदर विजेट हैं, इसलिए मैं प्रत्येक पंक्ति में सभी विजेट्स को कैसे हटा सकता हूं, सभी लेआउट हटा सकता हूं, और फिर उन्हें नए लेआउट में जोड़ सकता हूं?
यदि मैं करता हूं: प्रत्येक लेआउट के अंदर प्रत्येक तत्व के लिए takeAt (0) मेरे पास एक विजेट के साथ QLayoutItem है ... मैं विजेट को हटाए बिना लेआउट इटैम कैसे हटा सकता हूं? .... मैं विजेट को कैसे हटा सकता हूं इसे मारने के बिना, कोई फर्क नहीं पड़ता कि यह माता-पिता या बच्चे में है? चूंकि हटाने के लिए कई विधियां हैं: निकालें Item, removeWidget ... एक लेआउट में, लेकिन नहीं लेना Widget ... बस ले लें() और यह एक Qlayoutitem देता है।
मैंने कई तरीकों की कोशिश की, लेकिन मैं अभी भी विजेट्स को देखता हूं इससे कोई फर्क नहीं पड़ता कि उनके साथ क्या हुआ।
इस बारे में प्रश्न:
जब एक विजेट नष्ट कर दिया जाता है? यदि मैं लेआउट से विजिट (इंडेक्स) लेता हूं, तो क्या यह कुछ समय से ही हटा दिया जाता है? क्या ऐसा होता है यदि मेरे पास दूसरी सूची में पॉइंटर है?
removeAt (अनुक्रमणिका) विजेट की डिलीट विधि निष्पादित करता है?
लेआउट() -> हटाएं (विजेट); QGraphicsLayout के लिए केवल मौजूद है। आपका मतलब शायद लेआउट() -> निकालें Widget (विजेट); – Bim
यह भी है कि आप बिना किसी लेआउट से विजेट को हटाने के लिए क्या कर सकते हैं।यदि आपके पास विजेट पॉइंटर नहीं है, तो निम्न कार्य करें: QLayoutItem * item = layout-> itemAt (0); QWidget * विजेट = आइटम-> विजेट(); अगर (विजेट! = NULL) { लेआउट-> निकालें Widget (विजेट); // अगर आप विजेट को हटाना चाहते हैं, तो करें: विजेट-> सेटपेरेंट (एनयूएलएल); विजेट हटाएं; } (स्वरूपण काम नहीं करता है, लेकिन आपको विचार मिलता है ...) – Bim
FYI: यह पाइथन में मान्य नहीं है क्योंकि आपको आंतरिक सी ++ ऑब्जेक्ट का भी ख्याल रखना है। – darkgaze