2010-12-09 9 views
6

में प्रगति पट्टी अपडेट करें, मैं गणना की प्रगति के लिए उपयोगकर्ता को सूचित करने के लिए प्रगति पट्टी के मूल्य को अपडेट करूंगा।गणना के दौरान गणित

दुर्भाग्य से मैं इस वजह SetPropertyValue समारोह

[email protected][{"bar", "value"}, 70]; 

मूल्य अपडेट नहीं होने पर क्या करना है जब मैं फोन नहीं पा रहा हूँ।

मैं इस तरह से

ref = GUIRun[mainWindow]; 

उत्तर

1

आप GUIKit उपयोग करने के लिए शुरू करने से पहले

Needs["GUIKit`"]; 

निष्पादित करने के लिए याद करते थे रेफरी प्राप्त? यदि आपके आदेश निष्पादित नहीं होंगे, क्योंकि वे ज्ञात नहीं हैं। यदि आप इसका उपयोग शुरू करने के बाद GUIKIT लोड करते हैं, तो यह न भूलें कि इसके कुछ प्रतीकों को आपके द्वारा अनजाने में परिभाषित प्रतीकों से छायांकित किया जा सकता है।

+0

धन्यवाद, मैंने पहले ही किया है। – pAkY88

9
मेथेमेटिका 6 के साथ

या बाद में बड़े GUIKit पैकेज के बजाय मॉनिटर और ProgressIndicator प्रयोग करके देखें:

With[{count = 1000}, 
Monitor[Do[Pause[0.01];, {i, count}], 
    ProgressIndicator[Dynamic[i/count]]]] 
+0

समस्या यह है कि मैं गणना में प्रगति सूचक को अद्यतन कर दूंगा, और मैं गणना समय की भविष्यवाणी नहीं कर सकता, इसलिए मैं प्रगति सूचक स्थिति को द्विपक्षीय रूप से अद्यतन करूंगा, उदाहरण के लिए जब कुछ घटनाएं होती हैं। मैं यह कैसे कर सकता हूं? – pAkY88

+0

मुझे यकीन नहीं है कि मैं आपके अनुवर्ती प्रश्न को पूरी तरह से समझता हूं। जब भी मैं या परिवर्तनों की गिनती करता हूं तो गतिशील के अंदर i/count अभिव्यक्ति का पुनर्मूल्यांकन किया जाता है। तो आपको यह जानने की ज़रूरत नहीं है कि समय से पहले क्या गिनती है क्योंकि आप गणना के दौरान अपना मूल्य अपडेट कर सकते हैं। इसके अलावा, मॉनीटर के लिए दूसरा तर्क प्रगति इंडिकेटर होना आवश्यक नहीं है। यदि आप अधिकतम मूल्य नहीं जानते हैं जिसका आप उपयोग करेंगे, लेकिन आप अभी भी उस मूल्यांकन की निगरानी करना चाहते हैं जिसका आप डायनामिक [i] जैसे कुछ उपयोग कर सकते हैं और मेरे वर्तमान मूल्य को प्रदर्शित और अपडेट किया जाएगा। – ragfield

6

यह @ ragfield का जवाब करने के लिए सिर्फ एक विस्तार है। आप presententations के लिए एक एनिमेटेड GIF और जैसे प्रगति संकेतक सहेजना चाहते हैं

Clear["Global`*"]; 
count = 0; inRange = 0; i = 0; sumTgt = 10^5 
Monitor[ 
    While[count < sumTgt, 
    If[.14 < (rand = RandomReal[]) < .15, inRange++]; 
    count += rand; 
    ] 
    , {{"SumTillNow", ProgressIndicator[count, {0, sumTgt} ],count}, 
    {"InRange", ProgressIndicator[inRange, Indeterminate],inRange}} 
    // MatrixForm 
]; 

, आप संशोधित कर सकते हैं:

आप घिरा है और असीम परिमाण का प्रतिनिधित्व करना चाहते हैं, तो आप कुछ इन पंक्तियों के साथ कर colud यह थोड़ा:

count = 0; inRange = 0; i = 0; sumTgt = 10^4 
Monitor[ 
    While[count < sumTgt, 
    If[.14 < (rand = RandomReal[]) < .15, inRange++]; 
    count += rand; 
    ] 
    , a[++i] = Grid[ 
       {{"SumTillNow", ProgressIndicator[count, {0, sumTgt}],count},  
        {"InRange", ProgressIndicator[inRange, Indeterminate],inRange + 0.}}, 
       Frame -> All, Alignment -> {{Left, Center, Right}}, 
       ItemSize -> {{Automatic, Automatic, 8}}]; 
]; 
Export["c:\Anim.gif", Table[a[j]//MatrixForm, {j, i}],"DisplayDurations"->{.3}] 

और परिणाम है:

alt text