当前位置 博文首页 > pyqt qlistwidget改变item颜色的操作

    pyqt qlistwidget改变item颜色的操作

    作者:qq_26669719 时间:2021-05-08 18:25

    我就废话不多说了,大家还是直接看代码吧~

    实例:

    from PyQt5 import QtCore, QtGui, QtWidgets
    from PyQt5.QtCore import *
    from PyQt5.QtWidgets import *
    from PyQt5.QtGui import *
    import sys
    class Win(QWidget):
      def __init__(self):
        super(Win, self).__init__()
        self.setObjectName("self")
        self.resize(400, 300)
        self.listWidget = QtWidgets.QListWidget(self)
        self.listWidget.setGeometry(QtCore.QRect(10, 20, 256, 192))
        self.listWidget.setObjectName("listWidget")
        self.pushButton = QtWidgets.QPushButton(self)
        self.pushButton.setGeometry(QtCore.QRect(280, 60, 75, 23))
        self.pushButton.setObjectName("pushButton")
        self.pushButton.clicked.connect(self.add)
        self.retranslateUi()
        QtCore.QMetaObject.connectSlotsByName(self)
      def retranslateUi(self):
        _translate = QtCore.QCoreApplication.translate
        self.setWindowTitle(_translate("self", "self"))
        self.pushButton.setText(_translate("self", "PushButton"))
      def add(self):
        self.listWidget.addItem('123')
        index=self.listWidget.currentRow()+1
        if index:
          self.listWidget.item(index-1).setBackground(QColor('green'))    
          self.listWidget.item(index).setBackground(QColor('red'))
        else:
          self.listWidget.item(index).setBackground(QColor('blue'))
        self.listWidget.setCurrentRow(self.listWidget.currentRow()+1)
    app=QApplication(sys.argv)
    win=Win()
    win.show()
    sys.exit(app.exec_())

    补充:PyQt QListWidget 删除item的坑

    使用removeItemWidget函数需要QListWidgetItem的对象本身作为参数,通过findItems得到了对象,调用了函数,但是还是没反应,PyQt5的bug?

    使用takeItem删除成功了

    item=self.listWidget.findItems('张三',Qt.MatchExactly)[0]
    row=self.listWidget.row(item)
    print(row)
    self.listWidget.takeItem(row)

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持站长博客。如有错误或未考虑完全的地方,望不吝赐教。

    js
    下一篇:没有了