どのように私はQListWidgetからQListWidgetItemを削除し、表示を更新することができますか?
質問
私はQListWidgetItem
のリストを表示するには、QListWidgetを使用していますこのリストは、ファイルから読み込まれます。私は、ファイルを閉じるとき、私はリストを空にしたい。
私は自分にこの方法をやりました
class QuestionsList(QtGui.QListWidget):
def __init__(self, parent):
super(QuestionsList, self).__init__(parent)
self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
self.setProperty("showDropIndicator", False)
self.setAlternatingRowColors(True)
self.quiz = None
def loadQuiz(self, quiz):
self.quiz = quiz
self.flush()
if quiz is not None:
i = 1
for question in quiz.questions_list:
self.addItem(QuestionItem(i, question, self))
i += 1
def flush(self):
for item in [self.item(i) for i in xrange(self.count())]:
print unicode(item.text())
self.removeItemWidget(item)
del item
loadQuiz方法の作品、flushメソッドは、各項目のテキストが、もremoveItemWidget方法でもデルの項目がリストを空にする働きを印刷します。
私はそれを行うことができますどのように?
おかげ
解決
なぜ文句を言わないQListWidget?
に明確なメソッドを使用します他のヒント
私は、これはすでに答えのですけど、私はを削除する方法を見つけるために、この質問に出くわしました選択の項目(S)
このはそうのように行うことができます:
def removeSelected(self):
for item in self.selectedItems():
self.takeItem(self.row(item))
希望、これはそこに誰かを助け!
実は、removeItemWidgetは、この目的のために仕事をしません。
ここに私の解決策がある。
def flush(self):
while self.count() > 0:
self.takeItem(0)
メソッドスタックとtakeItem()(カウント - 1)でtakeItem(0)(ポップのように動作します)。キュー内のポップのように()
所属していません StackOverflow