私が作成した単純なGUIで、動的に作成されたチェックボックスがチェックされているかチェックされていないかを判断するのに問題があります。PyQt5で動的に作成されたQStandardItemsのプロパティにアクセスする
私は関連コードを適用し、それを下に貼り付けました。 4つのQStandardItemを作成して名前を付けるのは簡単かもしれませんが、私は非常に多くの異なるアイテムを含む多くのリストを扱っています。したがって、自分で作成することは実際には実現できません。
これらのプロパティにアクセスする方法を知る助けがあれば、大歓迎です。要するに
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
class Splash(QWidget):
def __init__(self):
super().__init__()
# imagine this is a very long list...
self.seasons = ['summer','autumn','winter','spring']
self.initUI()
def initUI(self):
layout = QVBoxLayout()
list = QListView()
model = QStandardItemModel()
list.setModel(model)
printbtn = QPushButton('print values')
printbtn.clicked.connect(self.print_action)
for season in self.seasons:
item = QStandardItem(season)
item.setCheckable(True)
model.appendRow(item)
model.dataChanged.connect(lambda: self.print_action(item.text()))
layout.addWidget(printbtn)
layout.addWidget(list)
self.setLayout(layout)
self.show()
def print_action(self, item):
print('changed', item)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
ex = Splash()
sys.exit(app.exec_())
- アイテムがmodel.dataChangedを使用して関数にそれを接続するチェックされているが、それは季節を区別できない場合に検出することができます。
鮮やかな、私が探しているもの。 – yvesva