どのように私はQListWidgetからQListWidgetItemを削除し、表示を更新することができますか?

StackOverflow https://stackoverflow.com/questions/4203312

  •  25-09-2019
  •  | 
  •  

質問

私は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)(ポップのように動作します)。キュー内のポップのように()

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top