World > Toolbar#

class miniworlds.worlds.gui.toolbar.Toolbar[source]#

A Toolbar contains widgets (Buttons, Labels, …)

Public Data Attributes:

background_color

Background color as Tuple, e.g. (255,255,255) for white.

padding_left

Defines left margin

padding_right

Defines right margin

padding_top

Defines top margin

padding_bottom

Defines bottom margin

widgets

actors

event_manager

clock

frame

is_running

actors_fixed_size

app

backgrounds

layout

data

mouse

draw

music

sound

Inherited from GUI

actors

event_manager

clock

frame

is_running

actors_fixed_size

app

backgrounds

layout

data

mouse

draw

music

sound

Inherited from World

subclasses

tick_rate

Tick rate defines how often the method act() will be called.

fps

Frames per second shown on the screen.

world_size_x

Gets the horizontal size of the world in pixels.

world_size_y

Gets the vertical size of the world in pixels.

columns

Gets the number of horizontal pixels (columns) visible in the world.

rows

Gets the number of vertical pixels (rows) visible in the world.

size

Gets the world size as a tuple (width, height), in pixels.

background

Returns the currently active background.

has_background

Returns True if the world has at least one background appearance.

actors

event_manager

clock

frame

is_running

actors_fixed_size

app

backgrounds

layout

data

mouse

draw

music

sound

Inherited from WorldBase

window

size

topleft

width

height

class_name

registered_events

Returns the set of all event names that are currently registered.

Public Methods:

__init__()

Base class for toolbars.

on_change()

implemented in subclasses

remove(item)

Removes a widget from the toolbar.

has_widget(key)

Checks if self.widgets has key

get_widget(key)

Gets widget by key

remove_all_widgets()

reorder()

update_width_and_height()

send_message(text)

Sends a broadcast message to the world and all actors.

scroll_up(value)

scroll_down(value)

can_scroll_down(value)

can_scroll_up(value)

on_new_actor(actor)

on_remove_actor(actor)

Inherited from GUI

add(actor)

Inherited from World

__init__([x, y])

contains_position(pos)

Checks if position is in the world.

contains_rect(rect)

Returns True if the entire rectangle is fully inside the world.

contains_rect_any(rect)

Returns True if any part of the rectangle is inside the world.

set_columns(value)

Internal method to set columns and sync world width.

set_rows(value)

Internal method to set rows and sync world height.

get_background()

Returns the current active background from the backgrounds manager.

switch_background(background)

Switches the current background to a specified one.

remove_background([background])

Removes a background from the world.

set_background(source)

Sets a new background and replaces the current active background.

add_background(source)

Adds a new background to the world and sets it as the active one.

start()

Starts or resumes the world.

stop([frames])

Stops the world immediately or after a delay in frames.

run([fullscreen, fit_desktop, replit, ...])

Starts the main application loop of the Miniworlds engine.

is_in_world(position)

Checks whether a given world position lies within the world's boundaries.

send_message(message[, data])

Sends a broadcast message to the world and all actors.

quit([exit_code])

Immediately quits the application and closes the game window.

reset()

Resets the world Creates a new world with init-function - recreates all actors and actors on the world.

get_from_pixel(position)

Converts a screen pixel position into a valid world position if inside bounds.

to_pixel(position)

Converts a world position to a screen pixel position.

on_setup()

Hook method to define initial setup logic when the world is created.

detect_actors(position)

Gets all actors which are found at a specific position (in global world coordinates)

get_actors_from_pixel(pixel)

Returns a list of all actors located at the given screen pixel position.

distance_to(pos1, pos2)

Calculates the Euclidean distance between two positions.

direction_to(pos1, pos2)

Calculates the angle from pos1 to pos2 in degrees.

Inherited from WorldBase

__init__()

remove(actor)

Implemented in subclasses

on_change()

implemented in subclasses

on_new_actor(actor)

on_remove_actor(actor)

get_world_connector(actor)

screenshot([filename])

Saves a screenshot of the current window surface to a file.

get_events()

Prints a list of all events that can be registered in this world.

register(method)

Registers a method as a world event handler.

Private Data Attributes:

_abc_impl

_fps

_step

_key_pressed

_animated

_timed_objects

_dynamic_actors

_registered_methods

_mainloop

_collision_manager

Inherited from GUI

_abc_impl

_fps

_step

_key_pressed

_animated

_timed_objects

_dynamic_actors

_registered_methods

_mainloop

_collision_manager

Inherited from World

_abc_impl

_fps

_step

_key_pressed

_animated

_timed_objects

_dynamic_actors

_registered_methods

_mainloop

_collision_manager

Inherited from WorldBase

_abc_impl

Inherited from ABC

_abc_impl

Private Methods:

_get_mainloopmanager_class()

_add_widget(widget[, key])

_widgets_total_height()

_set_widget_width(widget)

Inherited from GUI

_get_world_connector_class()

needed by get_world_connector in parent class

Inherited from World

_validate_parameters(x, y)

_clear()

Clears the world's state: event queue, all backgrounds, and all actors.

Inherited from WorldBase

_get_mainloopmanager_class()

_get_camera_manager_class()

_get_world_connector_class()

needed by get_world_connector in parent class

_create_event_manager()

_unregister(method)

Unregisters a previously registered world method.

_start_listening()

Enables input listening for the world.

_stop_listening()

Disables input listening for the world.


__init__()[source]#

Base class for toolbars.

Example

Add a Toolbar which interacts with Actors on world via messages:

from miniworlds import *

world = World()

world.add_background("images/galaxy.jpg")

toolbar = Toolbar()
button = Button("Start Rocket")
toolbar.add(button)
world.add_container.add_right(toolbar)

@world.register
def on_message(self, message):
    if message == "Start Rocket":
        rocket.started = True

rocket = Actor(100, 200)
rocket.add_costume("images/ship.png")
rocket.started = False
rocket.turn_left(90)
rocket.direction = "up"

@rocket.register
def act(self):
    if self.started:
            self.move()

@rocket.register
def on_sensing_not_on_the_world(self):
    self.remove()

world.run()
actors: pygame.sprite.LayeredDirty#
actors_fixed_size: bool#
app: app.App#
property background_color#

Background color as Tuple, e.g. (255,255,255) for white

backgrounds: backgrounds_manager.BackgroundsManager#
can_scroll_down(value)[source]#
Parameters:

value (_type_) – _description_

Returns:

_description_

Return type:

_type_

can_scroll_up(value)[source]#
clock: pygame.time.Clock#
data: data_manager.DataManager#
draw: draw_manager.DrawManager#
event_manager: event_manager.EventManager#
frame: int#
get_widget(key)[source]#

Gets widget by key

Return type:

BaseWidget

Returns:

_description_

Return type:

_type_

has_widget(key)[source]#

Checks if self.widgets has key

Parameters:

key – The key of widget

is_running: bool#
layout: layout_manager.Layoutmanager#
mouse: mouse_manager.MouseManager#
music: world_music_manager.MusicManager#
on_change()[source]#

implemented in subclasses

on_new_actor(actor)[source]#
on_remove_actor(actor)[source]#
property padding_bottom#

Defines bottom margin

property padding_left#

Defines left margin

property padding_right#

Defines right margin

property padding_top#

Defines top margin

remove(item)[source]#

Removes a widget from the toolbar. Warning: Be careful when calling this method in a loop.

Parameters:

key – The key of widget which should be removed

remove_all_widgets()[source]#
reorder()[source]#
scroll_down(value)[source]#
scroll_up(value)[source]#
send_message(text)[source]#

Sends a broadcast message to the world and all actors.

The message is dispatched through the event system and can be handled by any registered method in the world or its actors.

Parameters:
  • message – The name of the message/event to send.

  • data – Optional additional data to pass with the message.

Example

>>> world.send_message("explode", {"power": 10})
sound: world_sound_manager.SoundManager#
update_width_and_height()[source]#
widgets: OrderedDict['widget_base.BaseWidget']#