pyqt qlistwidget改变item颜色的操作

时间:2021-05-22

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

实例:

from PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtCore import *from PyQt5.QtWidgets import *from PyQt5.QtGui import *import sysclass 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)

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章