Passing Edit uicontrol string to callback of another uicontrol in Matlab -


मैंने मैटलैब में ऐसा कोड लिखा है:

  function [] = gui_function () Window.value1 = uicontrol ('शैली', 'संपादित करें', ... 'स्ट्रिंग', '5', ... 'कॉलबैक', @आईएस_एनम्बर); Window.computeButton = uicontrol ('शैली', 'पुश', ... 'कॉलबैक', {@ टेस्ट_स्क्रिप्ट, str2double (प्राप्त करें (window.value1, 'string'))}); अंत समारोह [] = test_script (varargin) value1 = varargin {3}; अंत  

मैं पाठ को यूआईटीओन्ट्रोल से बटन के कॉलबैक से पास करना चाहता हूं। जब मैं इसे निम्नलिखित के रूप में करता हूं, तो मान जो पारित किया गया है वह पुराना मान है जो यूआईटीओन्ट्रोल की घोषणा करते समय निर्धारित किया जाता है। तो अर्थात्। मैं जीयूआई चलाता हूँ और इसमें 5 का मान होता है। मैं इसे 20 पर अधिलेखित करता हूं, लेकिन बटन को धकेलने के बाद, जो मूल्य दिया जा रहा है वह अभी भी 5

इस दृष्टिकोण में क्या गलत है? यह अलग तरीके से कैसे किया जा सकता है? अग्रिम धन्यवाद!

मेरी राय में, जीयूआई के साथ काम करते समय सबसे अच्छा विकल्प हैंडल का उपयोग करना है जीयूआई की संरचना, जिसमें प्रत्येक यूआईटीओन्ट्रोल को अपने संबद्ध गुणों के साथ जमा किया जाता है (जो कि अच्छा हिस्सा है) जो भी आप इसे स्टोर करना चाहते हैं, उदाहरण के लिए वेरिएबल्स जैसे।

इसलिए मैंने आपको संशोधित किया है संभालता संरचना का उपयोग करने के लिए बिट कोड मैं पूरी तरह से स्पष्ट नहीं हूं कि आप क्या चाहते हैं, लेकिन मेरे उदाहरण में पुशबूटन का इस्तेमाल 1 संपादन बॉक्स की सामग्री के साथ दूसरे संपादन बॉक्स की सामग्री को अपडेट करने के लिए किया जाता है। यह बहुत ही बुनियादी है, लेकिन इसे आपको हेडल्स का अनुभव और संरचना का प्रबंधन करने में सहायता करनी चाहिए। अगर कुछ स्पष्ट नहीं है तो कृपया मुझे बताएं!

  फ़ंक्शन gui_function () ScreenSize = get (0, 'ScreenSize'); हैंडल। फिंगूर = आकृति ('स्थिति', [स्क्रीन साइज़ (3) / 2, स्क्रीनसिज़ (4) / 2,400,285]); संभालती है। एडिट 1 = यूटीकंट्रोल ('शैली', 'संपादित करें', 'स्थिति', [100 150 75 50], ... 'string', '5'); हैंडल। एडिट 2 = यूटीकंट्रोल ('शैली', 'संपादित करें', 'स्थिति', [100 80 75 50], ... 'स्ट्रिंग', 'मुझे अपडेट करें'); Handles.computeButton = uicontrol ('शैली', 'धक्का', 'स्थिति', [200 100 75 75], 'स्ट्रिंग', 'पुशमे', ... 'कॉलबैक', @ पुशबूटन कॉलबैक); Guidata (हैंडल। चित्र, हैंडल); % // गुडडाटा को हैंडल सहेजें। फिर यह जीयूआई में हर जगह पहुंच योग्य रूप है। पुशबुटन कॉलबैक (संभालती है, ~) हैंडल्स = ग्विडाटा (जीसीएफ); आंकड़ के साथ संबंधित हैंडल पुनर्प्राप्त करें। TextInBox1 = मिलें (हैंडल। एडिट 1, 'स्ट्रिंग'); सेट (handles.Edit2, 'स्ट्रिंग', TextInBox1); % // पहले की सामग्री के साथ 2 संपादन बॉक्स अद्यतन करें। % // आप जो कुछ भी चाहते हैं ... GUIDATA (हैंडल। चित्र, हैंडल);  

आप अपने फ़ंक्शन कॉलबैक (test_script) जोड़कर इस GUI को अनुकूलित कर सकते हैं जैसे मैंने पुशबुटोन कॉलबैक को लागू किया है आशा है कि मैं समझ गया कि आप क्या चाहते थे:)


Comments