Very much appreciated, got more homework to study :) On Saturday, May 25, 2013 4:53:34 PM UTC+2, Terry wrote: > > On Sat, 25 May 2013 05:00:46 -0700 (PDT) > Fidel Pérez <[email protected] <javascript:>> wrote: > > > Hi: > > Im trying to make a button loop through all its siblings and make > buttons > > of them when their bodies have certain conditions. This way, when I > > increase the tree, the button will auto-update with the new branches. > > > > For that, I need to refer the actual button's sibilings, instead of the > > "node which is selected" when i press the button. I need "p" of the node > > when my position is in another node (to which I will have to refer too) > so > > I actually get an interaction among the sibilings tree and the position > Im > > currently in. > > This question may have come up recently, here it is > https://groups.google.com/forum/?fromgroups#!topic/leo-editor/K90m_aIiz9k > last message in that thread. > > Another way would be, if you were creating the button from a script, to > include a reference to the position in the command. > > from leo.plugins.mod_scripting import scriptingController > sc = scriptingController(c) > > def my_cmd(c=c, v=p.v): > p = c.vnode2position(v) > g.es("Created from "+p.h) > > b = sc.createIconButton( > 'but', > command = my_cmd, > statusLine = 'Make buttons', > bg="light_blue" > ) > > - stores v, not p, p will break > - create button by clicking run-script, or by making this a @script > node > - change its headline, click button again, new headline reported > > And here's the really hacky version which knows not only the node it > came from but the button it's fired from: > > from leo.plugins.mod_scripting import scriptingController > sc = scriptingController(c) > data = {'clicks':0} > def my_cmd(c=c, v=p.v, data=data): > p = c.vnode2position(v) > g.es("Created from "+p.h) > data['clicks'] += 1 > data['b'].button.setText(str(data['clicks'])) > > b = sc.createIconButton( > 'zero', > command = my_cmd, > statusLine = 'Make buttons', > bg="light_blue" > ) > data['b'] = b > > - sc.createIconButton() returns a QWidgetAction, not a QPushButton, > hence the '.button' part. > - I guess this is a closure, with the surrounding @script node acting > as the scope for the closure's data ('data'). > > Cheers -Terry >
-- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/leo-editor?hl=en-US. For more options, visit https://groups.google.com/groups/opt_out.
