Python PyQt5-组合框中有条件的颜色字段-qsqltablemodel

Python PyQt5-组合框中有条件的颜色字段-qsqltablemodel,python,pyqt,pyqt5,Python,Pyqt,Pyqt5,我可以使用QSqlTableModel为QComboBox中的行着色吗 我试过: a=self.ui.comboBox.model().index(0,0) self.ui.comboBox.model().setData(a, QtGui.QColor('red'), 8) 之后尝试了使用processEvents或setModel进行各种更新,但都没有成功。有几种方法可以更改某些行的背景颜色 重写QSqlTableModel的数据方法 例如: combo = QComboBox() mo

我可以使用QSqlTableModel为QComboBox中的行着色吗

我试过:

a=self.ui.comboBox.model().index(0,0)
self.ui.comboBox.model().setData(a, QtGui.QColor('red'), 8)

之后尝试了使用processEvents或setModel进行各种更新,但都没有成功。

有几种方法可以更改某些行的背景颜色

  • 重写QSqlTableModel的数据方法

  • 例如:

    combo = QComboBox()
    model = CustomSqlModel()
    model.setTable("table")
    combo.setModel(model)
    
    combo = QComboBox()
    model = QSqlTableModel()
    model.setTable("table")
    combo.setModel(model)
    combo.setItemDelegate(StyledItemDelegate())
    

  • 使用委托,在本例中为QStyledItemDelegate

  • 例如:

    combo = QComboBox()
    model = CustomSqlModel()
    model.setTable("table")
    combo.setModel(model)
    
    combo = QComboBox()
    model = QSqlTableModel()
    model.setTable("table")
    combo.setModel(model)
    combo.setItemDelegate(StyledItemDelegate())
    

    为了更好地理解你,你可以解释你想要得到什么,或者放一张你想要得到什么的图片。我正在使用几个组合框来探索植物分类的图形结构表。我的目标是给数据库中存在的植物名称着色,将它们与尚未采集标本的官方植物分类群区分开来。因此,实例化之外的任何方法都更适合,因为我想根据所选的父combobox动态重新调用行。很好,谢谢。委托方法是否在实例化之外可用?看问题addendumThanks,不知道我可以直接在模型中这样做,省去了我今晚无法解决的头痛。