Variables: each variable which begins by a few letters and _ is a Qt object:
> w only is a Window object
> w_something for QWidget
> a_something for actions (like a process on button click)
> m_something for QMenu
> ma_something for a menu action QAction
> tb_something for a QToolBar
> f_something for QFrame
> q_something for any other Qt object like QFile, QLabel, ...
> k_something is a QCheckbox
> l_something, layouts (vbox, hbox, grid...)
> r_something is a QRadioButton
> wp_something is a PyQtGraph Widget (pg.GraphicsLayoutWidget)
> iv_something is an ImageView
> s_something is a QSlider bar
> c_something is a QComboBox (like html <select> lists)
> b_something is a QPushButton
> i_something is a QLineEdit (like html <input type="text" />)
> g_something is a QGroupBox
> Thw_something is a custom worker thread
> img_something is a QLabel containing a QPixmap (for png images)
> pb_something is a QProgressBar
> pf_something is a progress function triggered on thread signal, see run_thread.py
> rt_something is a RunThread object (not needed except if a progress bar must be manually updated)

> *s_something is a list (or dict) of * elements
    with * one related letter of the QObjects previously defined

> self.something: self is only used when something is needed through the whole class, in
this case we "declare" it at the top of the class by
doing something = None (or '', [], {}, ... according to the type)

Print / logs:
from logs.log import Log
Use Log.p('Your message', msg_type)
with msg_type: info, warn or error (optional, default is info)
It will print into debug.log (actually see log_file defined in settings.py)
You can watch it in real time: watch -n 0.5 tail -n 110 debug.log
