#include "widget.h" #include "tools.h" #include #include #include Widget::Widget(QWidget *parent) : QWidget(parent), model(new QStandardItemModel(this)) { auto layout = new QVBoxLayout(this); auto widget = new QTreeView(this); layout->addWidget(widget); widget->setModel(model); Tools::ModelSyncs* xmodel = new Tools::ModelSyncs(model, [](const QString &d, QStandardItem *n){return d == n->text();}, [](const QString &d, QStandardItem *i){i->setText(d);}); model->appendRow(new QStandardItem("sldkjflkdf")); auto button = new QPushButton("click"); layout->addWidget(button); connect(button, &QPushButton::clicked, [this, xmodel](){ xmodel->presentSync([](const QString &x){ if(x.length() > 3) return QList(); return QList() << x + "a" << x + "b" << x + "c" << x + "d"; }); }); } Widget::~Widget() { }