我有一個問題,確定是否是動態創建的複選框被選中或在一個簡單的GUI我已經創建用戶選中。訪問動態創建QStandardItems的財產PyQt5
我修改了相關的代碼並粘貼在下面。儘管創建並命名4個QStandardItems可能很容易,但我正在處理很多包含許多不同項目的列表,這些項目發生了很大變化,所以自己創建它們並不是真的可行。
任何找出如何訪問這些屬性的幫助,將不勝感激。
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