我已經從一個文件填充了一個Qlistview,文件中的每一行都變成了一行。現在,我想有另一個函數來創建qlistview中所有選中項目的另一個文件。我的列表視圖如下。如何獲取Qlistview中的Checked項目?
def show_list(self, file_in):
QListView.__init__(self)
QListView.setWindowFlags(self, QtCore.Qt.WindowStaysOnTopHint)
QListView.setWindowTitle(self, "ListView")
self.buttonBox = QtGui.QDialogButtonBox(self)
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)
list_view = QListView(self)
list_view.setMinimumSize(350,350)
self.verticalLayout = QtGui.QVBoxLayout(self)
self.verticalLayout.addWidget(list_view)
self.verticalLayout.addWidget(self.buttonBox)
self.buttonBox.accepted.connect(self.close)
self.buttonBox.rejected.connect(self.close)
model = QStandardItemModel(list_view)
with open(file_in) as f:
if f is not None:
item = f.readlines()
for line in item:
item = QStandardItem(line)
item.setCheckable(True)
item.setCheckState(QtCore.Qt.Unchecked)
model.appendRow(item)
list_view.setModel(model)
list_view.show()
這是我迄今爲止的嘗試得到我想要的結果。不幸的是,它不打印我的檢查項目。當被調用像這樣self.print_checked_items(model)
我想知道什麼可能是錯的?
def print_checked_items(self, model):
path = "/home/test1/checked.txt"
for index in range(model.rowCount()):
item = model.item(index)
if item.isCheckable() and item.checkState() == QtCore.Qt.Checked:
with open(path, "a") as f_out:
print ('%s\n' % item.text())
f_out.write('%s\n' % item.text()
你的意思是你想知道用戶UN /檢查列表中的項目時,或者更確切地說,查找被選中所有列表項? – Schollii
不,我希望在用戶檢查後從列表中選擇所有已檢查項目的列表。 – answerSeeker
編寫一個查看列表項目並檢查其選中狀態的函數。發佈代碼,然後我們可以提供幫助。 – Schollii