Наконец-то появилась возможность проверить это. Как и ожидалось, это работает безупречно, но, учитывая мою уникальную ситуацию, мне нужно переосмыслить, как я к этому подхожу.
ольно новичок в Python, и я чувствую, что это сложный вопрос, с учетом того, что он может выходить за рамки Stack Exchange. Пожалуйста, потерпите меня.
У меня есть QTreeWidget и QStackedWidget. Я заполнил QTreeWidget с помощью кортежа
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]))
Я хотел бы использовать этот же кортеж, чтобы заполнить QStackedWidget страницами, которые соответствуют QTreeWidget, и установить сигналы и слоты в одном цикле. Я пытался с помощью:
for key in TreeList['Item1']:
page = QWidget()
page.setObjectName(key)
self.QStackedWidget.addWidget(page)
print(self.QStackedWidget)
но все объекты указывают на одно и то же шестнадцатеричное значение, которое, как я предполагаю, означает, что они не уникальны. Возможно, мне нужно увеличить индекс? В любом случае я не смог понять, как генерировать сигналы и слоты при этом, поскольку они создаются динамически, и мне нужны уникальные, но предсказуемые имена.
Идея состоит в том, что простым добавлением новой категории или элемента в кортеж QTreeView, QStackedWidget и сигналы / слоты генерируются во время выполнения без необходимости изменения какого-либо исходного кода за пределами кортежа.
Каков будет лучший способ сделать это?
Извините, если это слишком много, но я подумал, что это может быть хорошим вопросом, если кто-то попытается сделать то же самое позже.
РЕДАКТИРОВАТЬ: я использую Python 3.6 и PyQt5