фильтрация TreeView QML - PullRequest
0 голосов
/ 21 июня 2020

поэтому в моем проекте я намерен использовать метод поиска для фильтрации Treeview после заполнения текстового поля, но я не могу понять, как это сделать, это код

import QtQuick 2.15
import QtQuick.Layouts 1.14
import QtQuick.Controls 1.4
ApplicationWindow{
        id:tree
        visible: true
        width: 800
        height: 800
        title: qsTr("Tree example")
        GroupBox{
             anchors.fill: parent

        TreeView {
            id:treee
            anchors.fill: parent
            model: myModel
             TableViewColumn {
                title: "Name"
                role: "display"
                width: 200
            }

Код C ++ ниже, Я попытался использовать QSortFilterProxyModel, но он не работает, я не знаю, сделаю ли я какую-то ошибку

#ifndef TREEVIEWMODEL_H
#define TREEVIEWMODEL_H

#include <QObject>
#include<QStandardItemModel>


class TreeViewModel : public QStandardItemModel
{
    Q_OBJECT
public:
     TreeViewModel(QObject *parent = nullptr);

signals:

public slots:
     void readDataBase();


};

#endif // TREEVIEWMODEL_H

#include "treeviewmodel.h"
#include <QStandardItem>


TreeViewModel::TreeViewModel(QObject *parent) : QStandardItemModel{parent}
{
    CanConverter canConverter;

    //connect(canConverter.getInstance(),SIGNAL(dataLoaded()),this,SLOT(readDataBase()));
    setColumnCount(1);
    QStandardItem *rootItem=invisibleRootItem();

    QStandardItem *DataBase1= new QStandardItem;
    QStandardItem *DataBase2 =new QStandardItem;
    QStandardItem *DataBase3= new QStandardItem;


    QStandardItem *Trame1=new QStandardItem;
    QStandardItem *Trame2=new QStandardItem;
    QStandardItem *Trame3=new QStandardItem;
    QStandardItem *Trame4=new QStandardItem;
    QStandardItem *Trame5=new QStandardItem;
    QStandardItem *Trame6=new QStandardItem;
    //QStandardItem *Trame7=new QStandardItem;


    DataBase1->setText("base de donné 1");
    DataBase1->setText("base de donné 2");
    DataBase1->setText("base de donné 3");

    Trame1->setText("Trame1");
    Trame2->setText("Trame2");
    Trame3->setText("Trame3");
    Trame4->setText("Trame4");
    Trame5->setText("Trame5");
    Trame6->setText("Trame6");



    rootItem->appendRow(DataBase1);
    rootItem->appendRow(DataBase2);
    rootItem->appendRow(DataBase3);


    DataBase1->appendRow(Trame1);
    DataBase1->appendRow(Trame2);

    DataBase2->appendRow(Trame3);
    DataBase2->appendRow(Trame4);

    DataBase3->appendRow(Trame5);
    DataBase3->appendRow(Trame6);
}

Обратите внимание, что я использую QStrandardItemModel здесь, пожалуйста, есть ли какое-либо решение, совместимое с этим Метод, которым пользуюсь, спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...