私はPythonには新しく、これは高度な質問だと思いますが、Stack Exchangeの範囲外である可能性があります。私と一緒に抱きしめてください。タプルに基づいてQStackedWidgetページを自動的に作成
私はQTreeWidgetとQStackedWidgetを持っています。私はQTreeWidgetに対応するページとQStackedWidgetを移入し、同じループ内でシグナルとスロットを確立するために、この同じタプルを使用したいタプル
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]))
を用いQTreeWidgetを移入しています。私が使って試してみました:
for key in TreeList['Item1']:
page = QWidget()
page.setObjectName(key)
self.QStackedWidget.addWidget(page)
print(self.QStackedWidget)
が、すべてのオブジェクトは、私は、彼らが一意でない手段を前提と同じヘクス値、を指します。インデックスを増やす必要がありますか?どちらの場合でも、信号とスロットを生成する方法は、ダイナミックに作成されているため、固有ではありませんが予測可能な名前が必要です。
タプルに新しいカテゴリや項目を追加するだけで、QTreeView、QStackedWidget、およびシグナル/スロットはすべて、実行時にタプルを超えてソースコードを変更することなく生成されるという考えがあります。
これを達成するにはどうすればよいでしょうか?
申し訳ありませんこれはあまりにも大きければ、誰かが後で同じことを試みる場合には良い質問かもしれないと思いました。
編集:私は、Python 3.6とPyQt5
アイデアはQTreeWidgetItem
で
QStackedWidget
のインデックスを関連付けることである
、そしてQTreeWidget項目は、つまり、どのような信号を接続したいん:
data()
方法では? – eyllanescページナビゲーションにQTreeWidgetを使用したいと思います。ヘッダーには接続がありません。 –