Crie automaticamente páginas QStackedWidget com base na Tuple

Sou bastante novo em python e sinto que essa é uma pergunta avançada, com isso em mente que pode estar fora do escopo do Stack Exchange. Por favor, tenha paciência comigo.

Eu tenho um QTreeWidget e QStackedWidget. Eu preenchi o QTreeWidget usando uma tupla

TreeList = ({

    'Header1': ((
        'Item11',
        'Item12',
    )),

    'Header2': ((
        'Item21',
        'Item22'
    ))
})

for key, value in TreeList.items():
    root = QTreeWidgetItem(self.QTreeWidget, [key])
    for val in value:
        root.addChild(QTreeWidgetItem([val]))

Eu gostaria de usar essa mesma tupla para preencher um QStackedWidget com páginas que correspondem ao QTreeWidget e estabelecer sinais e slots no mesmo loop. Eu tentei usar:

for key in TreeList['Item1']:
    page = QWidget()
    page.setObjectName(key)
    self.QStackedWidget.addWidget(page)
    print(self.QStackedWidget)

mas todos os objetos apontam para o mesmo valor hexadecimal, que suponho que eles não sejam únicos. Talvez eu precise incrementar o índice? Em ambos os casos, não consegui descobrir como gerar os sinais e slots enquanto fazia isso, pois eles estão sendo criados dinamicamente e preciso de nomes únicos, mas previsíveis.

A idéia é que, simplesmente adicionando uma nova categoria ou item à tupla, o QTreeView, o QStackedWidget e os sinais / slots sejam gerados em tempo de execução sem precisar modificar nenhum código-fonte além da tupla.

Qual seria a melhor maneira de conseguir isso?

Desculpe se isso é demais, mas achei que poderia ser uma boa pergunta caso alguém tentasse a mesma coisa posteriormente.

EDIT: eu estou usando Python 3.6 e PyQt5

questionAnswers(1)

yourAnswerToTheQuestion