soar.gui.soar_ui¶
Soar Main GUI classes.
Classes for building the main GUI, which allows the user to load brains & worlds, start simulations, etc.
-
class
soar.gui.soar_ui.ButtonFrame(master, image=None, text=None, command=None, state=None)¶ Bases:
tkinter.FrameA Tk frame containing an image Button and a Label immediately beneath it, arranged via the grid geometry manager.
The button inside the frame.
-
label¶ The label inside the frame.
Parameters: - master – The parent widget or window in which to place the frame.
- image (optional) – The image to place inside the button.
- text (optional) – The text to place inside the label.
- command (optional) – The function to call when the button is clicked.
- state (optional) – The state of the button, either NORMAL or DISABLED.
-
config(image=None, text=None, command=None, state=None)¶ Sets the parameters of the button/label.
Parameters: - image (optional) – The image to place inside the button.
- text (optional) – The text to place inside the label.
- command (optional) – The function to call when the button is clicked.
- state (optional) – The state of the button, either NORMAL or DISABLED.
-
class
soar.gui.soar_ui.IntegerEntry(parent, value='', **kwargs)¶ Bases:
tkinter.EntryA Tk entry that only allows integers.
Parameters: - parent – The parent Tk widget or window.
- value (str) – The initial value. Must be able to be cast to
int. - **kwargs – Arbitrary Tk keyword arguments.
-
class
soar.gui.soar_ui.LoadingIcon(parent, file, frames)¶ Bases:
tkinter.LabelAn animated loading icon that can be shown or hidden.
Parameters: - parent – The parent Tk widget or window.
- file (str) – The path to an animated
.gif. The last frame should be empty/transparent. - frames (int) – The number of frames in the
.gif.
-
class
soar.gui.soar_ui.SoarUI(client_future, client_mainloop, parent=None, title='Soar 1.5.2')¶ Bases:
tkinter.TkThe main GUI window.
Parameters: - client_future – The function to call to schedule a future with the client.
- client_mainloop – The client’s mainloop function, restarted after the main thread switches to Tk execution.
- parent (optional) – The parent window. It is almost always unnecessary to change this from the default.
- title (str, optional) – The main window title.
-
attach_window(w, linked=True)¶ Attach an existing window to the SoarUI.
Parameters: linked (bool) – If True, the window will be destroyed whenever the simulator window is destroyed.Returns: The window that was attached.
-
brain_cmd()¶ Called when the brain button is pushed.
-
brain_ready()¶ Configure buttons and paths when a brain is loaded.
-
cancel_all_loading()¶ Hide the loading icon and delete all button state frames.
-
close_windows(close_unlinked=False)¶ Close windows, optionally unlinked ones, clear the draw queue, and set the simulator canvas to
None.Parameters: close_unlinked (bool) – If True, closes all windows. Otherwise, closes only the linked ones.
-
connect_cmd()¶ Called when the connect to robot button is pushed.
-
connect_load()¶ Called when the real robot’s requested reload has finished.
-
connect_ready()¶ Called when the real robot is ready.
-
controller_failure()¶ Called by the client when the controller fails.
-
controller_io_error()¶ Called when an error occurs connecting to the real robot.
-
done_loading()¶ Re-enable user interaction, and hide the loading icon.
-
future(func, *args, after_idle=False, **kwargs)¶ Executes a function (asynchronously) in the GUI event loop ASAP in the future.
-
gui_error()¶ Called when a GUI error occurs, such as an error while drawing a world or window.
-
initialize()¶ Initialize the grid geometry.
-
loading()¶ Disable user interaction and animate the loading icon.
-
mainloop(n=0)¶ Enter the Tk event loop, and restart the client as a new thread.
Redirect stdout and stderr to the GUI’s output frame.
-
on_close()¶ Called when the main window is closed.
-
pause_cmd()¶ Called when the pause button is pushed.
-
pause_ready()¶ Called when the controller has finished pausing.
-
play_cmd()¶ Called when the play button is pushed.
-
play_ready()¶ Called after the controller has started playing.
-
reload_cmd(reload_controller=True, clear_output=True, silent=False, close_unlinked=False, callback=None)¶ Kill the controller, close windows, and reload the brain and world.
Parameters: - reload_controller (bool) – If
True, immediately reload whatever controller was in effect previously. - close_unlinked (bool) – If
True, close all windows, not just the linked ones. - clear_output (bool) – If
True, clears the output of the output frame. - silent (bool) – If
True, stops the client from printing'LOAD BRAIN'-like messages. - callback – The function to call after the reload has finished, or
None.
- reload_controller (bool) – If
-
reload_finished(reload_controller, sim_canvas, connected, callback)¶ Called after the client has finished reloading.
Parameters: - reload_controller (bool) – If
True, reload the previous controller. - sim_canvas – If not
None, the controller to be reloaded is the simulator. - connected – If
True, the controller to be reloaded is the real robot controller. - callback – A function to call once the reload has finished, or
None.
- reload_controller (bool) – If
-
report_callback_exception(exc, val, traceback)¶ Report callback exception to sys.stderr, as well as notifying the Soar client.
In addition, signal any events that may need to be flagged for
synchronous_future.
-
reset(clear_output=True)¶ Reset all of the button states to what they are at initialization, before any files are loaded.
Parameters: clear_output (bool, optional) – If True, clear the contents of the output frame.
-
sim_cmd()¶ Called when the simulator button is pushed.
-
sim_load()¶ Called when the simulator’s reload has finished.
-
sim_ready()¶ Called when the simulator is ready.
-
step_cmd()¶ Called when the step button is pushed.
-
step_finished()¶ Called when the controller finishes multi-stepping.
-
stop_cmd()¶ Called when the stop button is pushed.
-
stop_ready()¶ Called when the controller has stopped.
-
synchronous_future(func, *args, after_idle=False, **kwargs)¶ Executes a function in the GUI event loop, waiting either for its return, or for a Tk exception.
-
toplevel(linked=True)¶ Add a new window to the UI’s internal list, and return a new Toplevel window, optionally linked.
Parameters: linked (bool) – If True, the window will be destroyed whenever the simulator window is destroyed.Returns: The new Toplevel window.
-
world_cmd()¶ Called when the world button is pushed.
-
world_ready(auto_sim_load=False)¶ Configure buttons and paths when a world is ready.