Setting QProgressBar values based on selection
One idea would be to gather all your techs in a queue and iterate over that, updating the progress as you go.

Since my Python is rather Rust-y (I'm sorry for that pun), here's some pseudocode:

# Setup progress bar et cetera
# Gather techs in a queue
techs = Queue()
if pv_checkBox.isChecked():
    techs.add(pv_task)
if wind_checkBox.isChecked():
    techs.add(wind_task)

# Do the work
total_tasks = techs.count()
done_tasks = 0
while not techs.isEmpty():
    task = techs.take()
    task.doWork()
    done_tasks += 1
    new_progress = max(done_tasks / total_tasks * 100, 99)
    progress.setValue(newProgress)

# Progress is now 99
doFinalStuff()
progress.setValue(100)


This will do all the tasks in a FIFO fashion and set the progress as you wanted with the last step always being 99.

Now, it would be a good idea to gather all checkboxes in a group or layout and, by getting and filtering all child elements, add the techs via loop as well.