[Scilab-users] ?= GUI hel
Claus Futtrup
cfuttrup at gmail.com
Fri Nov 29 19:27:11 CET 2019
Hi Antoine, et al - anybody feel free to chime in.
I see the below example uses f=figure() ... instead of f=scf().
What's the reason for this preference?
From my side, the only difference I can see, is that figure() generates
a place for a GUI with a grey background (background = 33) ... whereas
when I call scf() the background is white (background = -2). I see the
same list of handles, and all other are also initialized to the same values.
Is there a difference, maybe an invisible one?
Best regards,
Claus
On 29.11.2019 18:34, Antoine Monmayrant wrote:
>>> 4) I will also look into this. My problem is the steep learning curve.
>>> If you look at the Scilab tutorials you have the good-old Openeering
>>> LHY_Tutorial - it's incredibly complicated and long. Is LHY_Tutorial
>>> using the Model-Viewer-Controller approach? - Maybe the
>>> Model-Viewer-Controller could be presented in a _simple_ tutorial - is
>>> it possible?
>> Hmm, that would be a good idea.
>> I'll see whether I can put something together.
>> The thing is, MVC approach looks rather silly and overengineered on a small example.
> I have not tried to follow a MWC approach, but here is my attempt at making a really simple GUI to just show the basics (see below).
> It take numbers from two different types of uicontrols (a slider and an edit) and display the sum in a text uicontrol.
> To keep things simple, I positioned and sized the uicontrols manually instead of using a gridbag.
> I also tried to use the fancy syntax for get() and set() that do not require calling findobj(), as suggested by Samuel.
>
> Hope it helps,
>
> Antoine
>
>
> f=figure();
>
> /* ---------------- First number from slider ---------------- */
> //values
> nmin=-5;
> nmax=10;
> nini=7;
> nsmallstep=1;
> nsbigstep=2;
> //slider position and size
> x=10;
> y=20;
> w=100;
> h=25;
> //slider uicontrol creation in figure f
> hslider=uicontrol(f, ...
> "style", "slider", ...
> "tag", "slider1", ...
> "backgroundcolor", [1 1 1], ...
> "position", [x y w h], ...
> "value", nini, ...
> "min", nmin, ...
> "max", nmax, ...
> "sliderstep", [nsmallstep, nsbigstep], ...
> "callback", "update_values");
>
> /* ------------- Second number from an editable text ------------- */
> // initial value
> editini="3.14";
> //edit position and size
> x2=x;
> y2=y+h+5;
> w2=w;
> h2=h;
> //edit uicontrol creation in figure f
> hedit=uicontrol(f, ...
> "style", "edit", ...
> "tag", "edit2", ...
> "backgroundcolor", [1 1 1], ...
> "position", [x2 y2 w2 h2], ...
> "string", editini, ...
> "callback", "update_values");
>
> /* ------------- Sum displayed in a text uicontrol ------------- */
> // initial value
> textini="Nothing"
> //edit position and size
> x3=x+w+5;
> y3=y;
> w3=w;
> h3=2*h+5;
> //slider uicontrol creation
> htext=uicontrol(f, ...
> "style", "text", ...
> "tag", "text3", ...
> "backgroundcolor", [1 1 1], ...
> "position", [x3 y3 w3 h3], ...
> "string", textini);
>
> /* -------- callback function for slider and edit uicontrols -------- */
> //Whenever user interacts with the slider or the edit uicontrols
> // show the sum of both numbers in the text field
> function update_values()
> //temporarily deactivate the callback (don't want callback calls to stack up while processing the current one
> set(gcbo,"callback_type",-1);
> /*
> Using the unique tag chosen at the creation time of the uicontrols
> to set/get the uicontrol properties
> */
> //get both numbers from the slider and the edit uicontrols
> number1=get("slider1", "value");
> string2=get("edit2", "string");
> //do your maths & conversion
> string3=string(number1+evstr(string2));
> //change the string displayed in the text uicontrol
> set("text3", "string", string3);
> //reactivate callback
> set(gcbo,"callback_type",0);
> endfunction
>
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/users
>
More information about the users
mailing list