Im really sorry to need so much help, but could you please show me the code to remove a created button from another button? How to access the "button list" to be able to remove it from an "external" script? Where did you get the .button.settext command? There is no such definition in LeoPlugins... Thanks Terry
On Saturday, May 25, 2013 4:58:11 PM UTC+2, Fidel Pérez wrote: > > 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]> 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.
