Welcome!
This is the community forum for my apps Pythonista and Editorial.
For individual support questions, you can also send an email. If you have a very short question or just want to say hello — I'm @olemoritz on Twitter.
Another dialogue issue
-
@cvp thanks for your patience.
-
@Tel Agree, and that's why I say it is strange because the result in the print"after dialog" is correct...
-
For me, this is ok
@ui.in_background def parse(self,st) : r=NewLink(st) print('after calling NewLink:',r) #@ui.in_background def NewLink(st):
For the first time, console shows both line in the right order
from parse after dialog: {'name': 'Azert'} after calling NewLink: None
-
@cvp [i was taking a nap for a while] I’ll try that.
There’s obviously a lot I don’t understand about ui.in_background. -
@Tel that seems to do it!!! But I don’t understand it, do you?
-
@Tel The only thing I know is that there is a main thread with, normally all UI process, and another ui.in_background for other process (+ all threads you want, of course).
I know that wait_modal on a presented ui.View returns immediately if called in the main thread. That's why you should put the @ui.in_background in the function that calls form_dialog. But here you have a sequence of functions called until form_dialog, and thus not easy to say in which you have to put this décorationDoc says:
Wait until the view is no longer on screen. This can be useful for creating modal dialogs. If this is called from the main (UI) thread, e.g. via an action, it returns immediately. It also returns immediately if the view is not (yet) on screen. In typical usage, this is called directly after View.present().
-
@Tel said:
i was taking a nap for a while
a nap can be beneficial, the proof is that the problem seems solved 😂
-
@cvp well, I just can’t find the right place to put it in my program.
I will have to try another way entirely. -
@Tel Good thinking and good luck, sometimes needed 😀
If you think you need help, don't hesitate, this forum has a lot of smart and marvelous guys -
I think ui.in_background is not what you want. I'll take a look later tonight, but you should try using @run_async from the script I linked to earlier.
-
I think I found the right place for it.
@ui.in_background def got_input(st) : theModel.parse(st)
That works in my program too.
Thanks everyone for running such a patient and informative forum.