2010-11-13 14 views
7

मैं क्यूटी निर्माता के साथ एक साधारण ओपनजीएल प्रोग्राम लिख रहा हूं जो मूल रूप से एक QGLWidget बनाता है, इसे दिखाता है, और एप्लिकेशन लूप चलाता है। मैं आमतौर पर नैदानिक ​​संदेश के साथ और अधिक डिबगिंग तरह चालू और बंद पूर्वप्रक्रमक प्रतीक है कि एक वास्तविक डिबगर और घड़ियों आदि का उपयोग कर क्यूटी निर्माता में से हम एक टैब आवेदन आउटपुट कहा जाता है, लेकिन सब मैं देख नहीं है "शुरू xxx.exe। xxx.exe कोड 0 से बाहर निकला "।std::cout या std::cerr से कोई आउटपुट नहीं। अब मुझे पता है कि मैं cmd.exe से अपना एप्लिकेशन शुरू कर सकता हूं (हाँ, मैं विंडोज का उपयोग कर रहा हूं, इसे प्यार करता हूं: पी) और वहां आउटपुट देखें लेकिन मेरी इच्छा है कि मैं सीधे आईडीई से आउटपुट देख सकूं। क्या यह संभव है? धन्यवादक्या मैं क्यूटी-निर्माता में प्रोग्राम आउटपुट देख सकता हूं?

उत्तर

8

आमतौर पर आवेदन आउटपुट फलक ठीक काम करता है। क्या आप वाकई cmd.exe (क्या आपने वास्तव में कोशिश की है?) से आउटपुट देखेंगे? पॉप-अप से कंसोल विंडो से बचने के लिए यह आमतौर पर UI अनुप्रयोगों के लिए बंद हो जाता है। CONFIG += console आज़माएं। यह भी जांचें कि क्या आप qDebug() संदेशएप्लिकेशन आउटपुट में देख सकते हैं।

+0

को उपकरण> विकल्प "पर्यावरण" के "सामान्य" टैब के तहत से टर्मिनल प्रविष्टि बदलने लिनक्स में मुझे अनुभव है कि सभी कंसोल आउटपुट दिखाए जाते हैं, विंडोज़ में केवल qDebug विंडो में दिखाई देगा। – rubenvb

+0

यदि आपका प्रोग्राम qtcreator में बहुत सारे आउटपुट प्रिंट करता है, तो यह डीबगर लक्ष्य को मारने या निकालने के बाद लंबे समय तक लटका होगा। Qtcreator के UI में कुछ एसिनाइन एल्गोरिदम आउटपुट की लाइनों की संख्या के आधार पर घातीय निष्पादन समय वृद्धि का कारण बनते हैं। यह वर्षों से ऐसा ही रहा है। – doug65536

+0

विश्वास नहीं है? 'Int main() {जबकि (1) std :: cout << "test" << std :: endl; } ', इसे कुछ मिनटों तक चलने दें, और प्रोग्राम को तोड़ने या मारने का प्रयास करें। YMMV। – doug65536

3

वैकल्पिक रूप से, आप प्रोजेक्ट-> रन विकल्प में "रन इन कंसोल" सेटिंग देख सकते हैं। यह एक नई कंसोल विंडो खुल जाएगा और वहां सभी कंसोल आउटपुट प्रदर्शित करेगा (यदि CONFIG += console निश्चित रूप से उपयोग किया जाता है)।

5

बस #include <QDebug> और फिर qDebug बजाय cout तरह

qDebug() << "you just clicked ok"; 

का उपयोग भी इस काम करता है

#include <QTextStream> 
QTextStream out(stdout); 
out << "\nHello World!\n"; 

.pro फ़ाइल में CONFIG += console जोड़ने मेरे लिए काम नहीं किया। मुझे आश्चर्य है क्योंकि?

मुझे अभी पता चला है कि मुझे "endl;" जोड़ना है अदालत की तरह काम करने के लिए

cout << "print this" << endl; 
+0

निश्चित रूप से सही जवाब! – DH1TW

0

आज़माएं: -:

x-terminal-emulator -e 

xterm -e 
संबंधित मुद्दे

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