Dev Quick Start¶
Below are quick tips and hints on how the plumbing kinda works (not definitive and WIP).
Fundamental is python3 and the PyQt5 ‘bindings’
so PyQt widget documentation is essentially upstream at https://doc.qt.io/qt-5/qt5-intro.html
The app starts with the pyspread.MainWindow
.
It is also passed around to other widgets as argument for callback, values, etc.
On startup the main windows call a set of _init_* functions eg
_init_toolbars
,_init_widgets
App persistence is stored in the
settings.Settings
object.
The actions
module defines a set of actions.Action
objects, a convenience constructor for QAction.
The
icons
module defines a set oficons.Icon
objectsThe icon files are located in the share/icons/ and are primarily .svg (thanks Tango Icon Library project and others)
Toolbar item are in
toolbar
moduleMenubar item are in
menubar
module
The spreadsheet data is stored in model.model
layers:
The data is displayed by the
grid
widgets moduleThe
entryline.EntryLine
widget allows user editingThe QUndoStack is used for undo/redo and
commands
contains the QUndoCommandsThe
workflows
module is where a lot of the logic isData is written and read from .pys files in the
interfaces.pys
module