簡體   English   中英

PyQt:在QListWidget中更新自定義列表小部件項

[英]PyQt : Updating Custom List Widget Item in QListWidget

我能夠使用以下代碼在QListWidget中添加自定義QListWidgetItem -

for item in dl_list:            
        widget = QtWidgets.QWidget()
        card = Ui_DownloadCard()
        card.setupUi(widget)
        card.set_filename(item["title"])
        card.set_progress_bar(item["progress"])
        card.set_progress_text(item["progress"]/item["size"])
        card.set_speed(item["speed"])

        listItem = QtWidgets.QListWidgetItem(self.download_list)
        listItem.setSizeHint(widget.sizeHint())

        self.myListWidget.addItem(listItem)
        self.myListWidget.setItemWidget(listItem, widget)

現在我希望以新的速度和進度更新每個項目。 我嘗試了以下代碼 -

self.myListWidget.item(0).set_speed("300 KB/s")

但它給出了錯誤的說法

AttributeError: 'QListWidgetItem' object has no attribute 'set_speed'

那么更新項目的正確方法是什么?

listItem = QtWidgets.QListWidgetItem(self.download_list)

您需要使用自定義項目:

listItem = YourCustomListWidgetItem(self.download_list)

來自規格: http//pyqt.sourceforge.net/Docs/PyQt4/qlistwidget.html#setItemWidget

QListWidget.setItemWidget

此功能僅應用於在列表小部件項目的位置顯示靜態內容。 如果要顯示自定義動態內容或實現自定義編輯器窗口小部件,請改用QListView和子類QItemDelegate。

因此,如果您想使用動態組件,則需要使用QListView和子類QItemDelegate。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM