一.效果
二.实现
QStringListModel里只实现了Qt::EditRole和Qt::DisplayRole,不能直接设置背景色和前景色,所以我们要继承QStringListModel,重写其中的data和setData方法,使其支持Qt::ForegroundRole和Qt::BackgroundRole。文章来源:https://www.toymoban.com/news/detail-719405.html
QHStringListModel.h文章来源地址https://www.toymoban.com/news/detail-719405.html
#ifndef QHSTRINGLISTMODEL_H
#define QHSTRINGLISTMODEL_H
#include <QStringListModel>
#include <QColor>
class QHStringListModel : public QStringListModel
{
public:
explicit QHStringListModel(QObject *parent = nullptr);
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
void clear();
private:
QMap<int, QColor> m_foregroundColorMap;
QMap<int, QColor> m_backgroundColorMap;
};
#endif
到了这里,关于Qt之自定义QStringListModel设置背景色和前景色的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!