ファイルからQlistviewを読み込んだので、ファイルの各行が1行になります。今、qlistviewのすべてのチェック項目から別のファイルを作成する別の関数を用意したいと思います。私のリストビューは次のようになります。Qlistviewでチェック項目を取得するにはどうすればよいですか?
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()
を意味していますか? – Schollii
いいえ、ユーザーがチェックした後、リストからすべてのチェック済みアイテムのリストを取得したいと思います。 – answerSeeker
リストの項目を検索し、チェックされた状態をチェックする関数を記述します。私たちが助けることができるコードを投稿してください。 – Schollii