QT_GUI_IM_6_7 - 8BitsCoding/RobotMentor GitHub Wiki

#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());
}
⚠️ **GitHub.com Fallback** ⚠️