2013-06-27 2 views
8

मैं क्यूटी 4.8.x का उपयोग कर रहा हूं इसलिए मुझे Qt5 से नए connect इंटरफ़ेस तक पहुंच नहीं है, लेकिन जब सिग्नल/स्लॉट कनेक्शन विफल हो जाता है तो मैं बेहतर चेतावनी देना चाहता हूं क्योंकि मैंने सिग्नल या स्लॉट नाम गलत वर्तनी की है।क्या QTbject :: कनेक्ट() विफल होने पर आप क्यूटी को जोर देने, segfault, या अन्यथा क्रैश कर सकते हैं?

वर्तमान में, कनेक्शन की कोशिश होने पर सभी क्यूटी एक त्रुटि संदेश थूकती है। हालांकि, मेरे कार्यक्रम में stdout पर बहुत अधिक आउटपुट है इसलिए कभी-कभी इन त्रुटियों को याद करना आसान होता है। क्या एक कनेक्ट कथन विफल होने पर, मेरे आवेदन को जोर, सीजीएफॉल्ट, या अन्य विधि के माध्यम से क्रैश करने के लिए मजबूर करना संभव है?

उत्तर

7

हां: QT_FATAL_WARNINGS पर्यावरण चर को गैर-शून्य मान पर सेट करें।

आप प्रोजेक्ट फलक पर जाकर क्यूटी निर्माता में विकास के दौरान ऐसा कर सकते हैं, फिर चलाएं क्लिक करें, फिर "पर्यावरण चलाएं" के अंतर्गत विवरण क्लिक करें, फिर जोड़ें पर क्लिक करें। जोड़ने के लिए

संपादित करें: आप निश्चित रूप से भी अगर यह गलत रिटर्न() QObject के लिए कुछ रैपर लागू कर सकते हैं :: कनेक्ट करते हैं, कि अपनी वापसी मान की जाँच करें और जोर होगा।

+1

क्या आप इसे कैसे करें इस पर अधिक विशिष्ट हो सकते हैं? –

+0

मैं अपने प्रश्न में अधिक विशिष्ट होगा। क्या यह एक ओएस पर्यावरण चर है? या यह कुछ है जिसे आपने '.pro' फ़ाइल में सेट किया है? आप 'QT_FATAL_WARNINGS' पर्यावरण चर को गैर-शून्य मान पर कैसे सेट करते हैं? –

+0

यह एक ओएस पर्यावरण चर है; इसे कैसे सेट करें अपने ओएस/आईडीई पर निर्भर करता है। निर्माता का उपयोग करते समय, आप रन फलक के तहत, परियोजना फलक में अतिरिक्त वातावरण चर सेट कर सकते हैं। 'Sh'-like shell के साथ लिनक्स/यूनिक्स के तहत, आप उस खोल में स्थायी रूप से सेट करने के लिए' QT_FATAL_WARNINGS = 1।/YourApp' या 'setenv QT_FATAL_WARNINGS = 1' चला सकते हैं। विंडोज के तहत यह कहीं नियंत्रण कक्ष -> सिस्टम में है। – peppe

3

मुझे लगता है कि इस प्रश्न में कम से कम एक समाधान है: Qt GUI app: warning if QObject::connect() failed? आपको जो चाहिए वह करता है।

विशेष रूप से, QErrorMessage::qtHandler का उपयोग करके आप उन चेतावनियों को रोक सकते हैं और जो भी आप चाहते हैं उन्हें कर सकते हैं।

संबंधित मुद्दे