2013-06-13 4 views
6

मैं यह करने की कोशिश की:QObject :: कनेक्ट: प्रकार के तर्कों पंक्ति में नहीं कर सकते हैं 'पूर्णांक और'

connect(this, SIGNAL(signalClicked(int&)), classA, SLOT(doWork(int&))); 

लेकिन मैं शीर्षक में संदेश मिलता है। तो मैं इंटरनेट का पता लगाया है और मैं इस समाधान जो अच्छी तरह से काम नहीं कर रहा के साथ आया था:

qRegisterMetaType<int&>("Type"); 
connect(this, SIGNAL(signalClicked(Type)), classA, SLOT(doWork(Type))); 

(त्रुटि: करने के लिए कॉल के लिए कोई मिलता-जुलता समारोह 'qRegisterMetaType (स्थिरांक चार [5])')

कोई समाधान? आपकी मदद के लिए धन्यवाद।

+0

क्या आप 'शामिल करते हैं? – Angew

+0

हाँ, मैं ऐसा करता हूं, इसलिए मुझे यह नहीं मिलता है ... – Thibel

+0

आपके उत्तर के लिए धन्यवाद लेकिन मुझे पहले ही यह समाधान मिल गया है http://www.qtforum.org/article/36440/signal-between-threads.html एस = ई 3808660493121294f8780ef018f9b5e98f5b6f4 और दुर्भाग्यवश यह अभी भी काम नहीं कर रहा है। – Thibel

उत्तर

11

यदि क्यूटी तर्कों को कतारबद्ध करने का प्रयास कर रहा है जिसका अर्थ है कि कनेक्शन धागे के बीच है। यह गैर-कॉन्स संदर्भों के लिए काम नहीं करेगा।

आप इसके आसपास काम करने के लिए संदर्भ_वापर का उपयोग कर सकते हैं, लेकिन मैं दृढ़ता से सुझाव दूंगा कि आप अपने डिजाइन पर पुनर्विचार करें। संकेत/स्लॉट कनेक्शन में संदर्भ द्वारा मूल्यों को पास करना एक अच्छा विचार नहीं है।

+0

मुझे पता है कि यह करने का यह अच्छा तरीका नहीं है लेकिन मैं इसके लिए नया हूं और यही एकमात्र समाधान है जिसे मैंने पाया। असल में जो मैं प्राप्त करने की कोशिश कर रहा हूं वह मुख्य धागे में एक विशेषता को अद्यतन करना है और इसे अनंत लूप में किसी अन्य थ्रेड से पढ़ना है। मैं कोशिश करता हूं कि आपने – Thibel

+1

@ डैन-मिल्बर्न के रूप में सुझाव दिया है, क्योंकि क्यूटी वस्तु की प्रतिलिपि बनाते हैं, संदर्भ के आधार पर मूल्यों को पारित करने का अच्छा विचार क्यों नहीं है? – TheDarkKnight

+0

यदि क्यूटी एक प्रतिलिपि लेता है, तो (गैर-कॉन्स्ट) संदर्भ से गुजरने का क्या मतलब है? प्राप्त करने वाला स्लॉट वैसे भी मूल को संशोधित करने में सक्षम नहीं होगा (जबकि सोचने में गुमराह होने के कारण यह हो सकता है)। इसके अलावा, क्यूटी संकेत/स्लॉट के पीछे बिंदु यह है कि सिग्नल एमिटर को यह नहीं पता कि इससे क्या जुड़ा हुआ है, या कितने कनेक्शन हैं। यदि दो जुड़े स्लॉट हैं, और वे दोनों संदर्भ द्वारा पारित ऑब्जेक्ट को संशोधित करने का प्रयास करते हैं तो आपके पास बग के लिए सभी प्रकार की संभावनाएं हैं। यह सीमित परिस्थितियों में, गैर-पंक्तिबद्ध कनेक्शन के साथ काम करेगा, लेकिन यह अभी भी खराब डिजाइन है। –

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