2009-07-19 2 views
5

मैं Qt3 से Qt4 तक एक एप्लिकेशन पोर्ट कर रहा हूं, और QApplication :: mainWidget() के लिए Qt4 प्रतिस्थापन की आवश्यकता है जो Qt3 में शीर्ष-स्तरीय विजेट को वापस करने के लिए उपयोग किया जाता है। क्या कोई जानता है कि क्यूटी 4 में ऐसा कैसे करें?QWidget * QAplication :: mainWidget() Qt4 में क्या हुआ?

उत्तर

3

तकनीकी रूप से, एनयूएलएल के साथ शुरू किया गया कोई भी विजेट शीर्ष स्तर का विजेट है, इसलिए QAplication को यह नहीं मानना ​​चाहिए कि उनमें से एक दूसरे से बेहतर है।
जिस तरह से मैं आमतौर पर ऐसा करता हूं, "वास्तविक" मुख्य विजेट में कहीं भी एक सूचक को सहेजना है, यहां तक ​​कि एक वैश्विक चर या सिंगलटन और आवश्यकता होने पर इसका संदर्भ लें।

2

मुझे लगता है कि topLevelWidgets() जितना करीब हो सकता है।

संपादित करें:

यूप। क्यूटी 4 ने जटिलता (और शक्ति) जोड़ा। अब कोई आवेदन विस्तृत मेनविड्ज नहीं है। कई QMainWindows को बनाया और दिखाया जा सकता है, और छुपाया जा सकता है, और फिर दिखाया जा सकता है। यह एक अच्छी बात है, हालांकि :) जैसा कि शूश ने देखा, क्यूटी 3 व्यवहार को वैश्विक चर (यक!) या क्यूप्लिकेशन सबक्लास के साथ आसानी से अनुकरण किया जा सकता है।

+0

हाँ, मैंने यह तरीका देखा। लेकिन यह गलत दिशा में एक कदम की तरह महसूस किया क्योंकि यह जटिलता जोड़ता है। यह अब तक एकमात्र मामला है जहां मुझे लगता है कि क्यूटी 3 क्यूटी 4 से बेहतर था, और इसलिए मुझे पूछना पड़ा। मैं प्रश्न थोड़ा और अधिक खुला छोड़ दूंगा, लेकिन अगर कोई भी बेहतर कुछ नहीं उठाता है तो मैं आपका जवाब स्वीकार करूंगा। धन्यवाद .. – Kristian

+0

ठीक है, आप हमेशा अपने ऐप के आधार पर "मुख्य विजेट" का ट्रैक रख सकते हैं। – Eugene

1

मुझे लगता है कि आप जो खोज रहे हैं उसे QMainWindow वर्ग द्वारा प्रतिस्थापित किया गया है, जो आपको set और get केंद्रीय विजेट सेट करने की अनुमति देता है।