(Jan-25-2021, 07:13 AM)deanhystad Wrote: A GUI application runs all the time, though most of the time it is doing nothing but waiting for the user to click a mouse button or press a key. The windows or Linux desktop is a GUI. Do you stop and restart windows each time you want to run a program?
GUI's are event driven, and the user provides the events. I would expect your GUI to have some code that gets called when a button is pressed, and when the event handler code completes the GUI goes back to waiting for the next event. If you need to disable the button while the event is being processed, that is easily done. But the GUI is running all the time. No recursion. No stopping and restarting. Not even a loop as far as you are concerned.
If you already have code that does the complicated task you could write a very simple GUI application that runs your complicated application as a subprocess.
OKay but how do you suggest solving this problem? I still need to be able to stop a task if I want to? How would I rewrite my GUI then?
When the user presses the button, it executes a function which waits for another user input and etc but I must be able to return to its initial state "idle" state if I want to.
You say "and when the event handler code completes the GUI goes back to waiting for the next event" What if the event not complete I jsut want to cancel it? According to that logic, when I start some task in windows, I cannot cancel it unless I complete it but thats not true. Every windows task has an cross at the top right corner and you can close it whenever you want to even if you havent completed the task, closing the task does not shut down my computer, it just closes that task, and thats what I need