#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QStringListModel>
#include <QSortFilterProxyModel>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_listView_clicked(const QModelIndex &index);
void on_matchStringLineEdit_textChanged(const QString &arg1);
private:
Ui::Widget *ui;
QStringListModel * model;
QStringList colorList;
QSortFilterProxyModel * proxyModel;
};
#endif // WIDGET_H
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
colorList = QColor::colorNames();
model = new QStringListModel(colorList,this);
proxyModel = new QSortFilterProxyModel(this);
proxyModel->setSourceModel(model);
ui->listView->setModel(proxyModel);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_listView_clicked(const QModelIndex &index)
{
QPixmap mPixmap(ui->label->size());
mPixmap.fill(QColor(proxyModel->data(index,Qt::DisplayRole).toString()));
ui->label->setPixmap(mPixmap);
qDebug() << "Showing all the colors";
qDebug() << "--------------------->>> Model Internal String list " << model->stringList();
qDebug() << "--------------------->>> Original External String list " << colorList;
}
void Widget::on_matchStringLineEdit_textChanged(const QString &arg1)
{
Q_UNUSED(arg1);
proxyModel->setFilterRegExp(ui->matchStringLineEdit->text());
}