Label callouts in QGIS
You can do this without any coding but just to follow the points carefully...
1) Download & add Qgis plugin 'Easy Custom Labelling' from Qgis Official repository. Run the first part of the plugin, "generate centroids".
2) Label your layer using 'Labeling' tool & move overlapping labels manually (Using Label Move-Present at Labeling Toolbar) after toggoling editing mode.
3) after saving the necessary edits...run the 'Easy Custom Labelling' plugin and select 'generates Lines from Labels' button (This will create your desired Leader as a separate .shp file).
For safety, when the tool asks for a projection (CRS), use the same as the layer which is being labelled. Your mileage may vary if you choose another.....
Check the snap attached for further understanding...
...Thanks
Until QGIS 3.8 you can draw line connector using geometry generator as described by kgjenkins here: GitHub Gist
Since QGIS 3.10 you can use built-in support of label callouts.