Python中如何使用PyQt5在QListWidget里添加内容

我想在 PyQt5 中的 QlistWidgets 控件中添加内容,需要怎么做?
Python中如何使用PyQt5在QListWidget里添加内容

6 回复

https://www.tutorialspoint.com/pyqt/pyqt_qlistwidget.htm
估计这里的大佬很多都在心里暗暗喷你是伸手党,正好最近在看 QT 分享一下


在PyQt5里往QListWidget里加内容,直接用addItem()就行。这玩意儿接受字符串或者QListWidgetItem对象。下面是个完整的例子,展示了两种添加方式,以及如何清空列表。

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QListWidget, QPushButton, QListWidgetItem

class ListWidgetDemo(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('QListWidget 示例')
        self.setGeometry(300, 300, 300, 250)

        layout = QVBoxLayout()

        # 创建列表控件
        self.list_widget = QListWidget()
        layout.addWidget(self.list_widget)

        # 创建按钮
        btn_add_str = QPushButton('添加字符串项')
        btn_add_str.clicked.connect(self.add_string_item)
        layout.addWidget(btn_add_str)

        btn_add_custom = QPushButton('添加自定义项')
        btn_add_custom.clicked.connect(self.add_custom_item)
        layout.addWidget(btn_add_custom)

        btn_clear = QPushButton('清空列表')
        btn_clear.clicked.connect(self.list_widget.clear)
        layout.addWidget(btn_clear)

        self.setLayout(layout)

    def add_string_item(self):
        # 方法1: 直接添加字符串
        item_text = f'项目 {self.list_widget.count() + 1}'
        self.list_widget.addItem(item_text)

    def add_custom_item(self):
        # 方法2: 创建 QListWidgetItem 对象,可以设置更多属性
        item = QListWidgetItem(f'自定义项目 {self.list_widget.count() + 1}')
        # 例如,可以设置项目为不可选
        # item.setFlags(item.flags() & ~Qt.ItemIsSelectable)
        self.list_widget.addItem(item)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = ListWidgetDemo()
    ex.show()
    sys.exit(app.exec_())

运行这段代码,你会看到一个带三个按钮的窗口。点击“添加字符串项”会用addItem()直接加个文本进去。点击“添加自定义项”会先创建一个QListWidgetItem对象再加进去,这种方式更灵活,你可以在添加前设置字体、颜色、图标或者状态(比如不可选)。点击“清空列表”就调用clear()方法。

简单说,想加东西就用addItem()

好吧~~ 我是新来的 不懂规矩

查不到就去看 Qt 官网的资料,再没有就去看 Qt 源码(

这个推荐的不错 比我以前看的另外一个英文教程有更多的内容

回到顶部