Tools
OpenStructure has several :class:`Tool` options that are all listed in the toolbar close to the 3D window. A tool is activated upon selecting it in the toolbar. Input events are sent to the tool as long as the Ctrl key (Cmd on Mac) is pressed. For example the rigid body manipulator will rotate and shift the currently selected nodes in the scene win. Upon releasing Ctrl, the events are sent to the camera, making it possible to rapidly switch between adjusting the viewing angle of the camera and manipulating the position and orientation of scene objects.

The example Write a Tool in Python demonstrates how to add a simple tool (written in Python) to OpenStructure.
Parameters of the tool that are configurable should be implemented using the ToolOptions facility. This automatically takes care of remembering the used options over different sessions (in the future) and creates a widget to modify these options.
input_events Input Events
Tools receive input events when the Control key (Command on macOS) is pressed. This includes both keyboard events and mouse events such as mouse move events, clicks and Real clicks.
Tools only receive mouse move events when one of the mouse buttons is pressed.
Currently, there are four different types of ToolOption which can be used to build up your own tool. They will automatically generate the appropriate QT widgets:
- :class:`ToolOptionInt` generates a QLineEdit of integer type
- :class:`ToolOptionFloat` generates a QLineEdit of float type
- :class:`ToolOptionEnum` generates a QComboBox
- :class:`ToolOptionButton` generates a QPushButton
param key: | Internal key name. |
---|---|
type name: | str |
param verbose_name: | Name used as label in the widget. |
type name: | str |
param default_value: | Default value. |
param min_value: | Minimum allowed value. Defaults to minimum possible value. |
param max_value: | Maximum allowed value. Defaults to maximum possible value. |
param key: | Internal key name |
---|---|
type name: | str |
param verbose_name: | Name used as label in the widget. |
type name: | str |
param default_value: | Default value. |
param min_value: | Minimum allowed value. Defaults to minimum possible value. |
param max_value: | Maximum allowed value. Defaults to maximum possible value. |
param key: | Internal key name |
---|---|
type name: | str |
param verbose_name: | Name used as label in the widget |
type verbose_name: | str |
param key: | Internal key name |
---|---|
type name: | str |
param verbose_name: | Name used as label in the widget |
type name: | str |
param slot_method: | Name of slot method that should be invoked upon releasing the buton |
type slot_method: | const char * |
param receiver: | QObject that implements the slot method |
type receiver: | QObject * |