Description: The QyurSqlTreeView class is deprecated. Use QyurTreeProxyModel instead. The QyurSqlTreeView class provides simple Qt4 widget for creating hierarchical editable view from single database table.Last changelog:
Собрал пример (sqltreesample), подключил к своей БД и все успешно работает.
Добавил новую форму через QtCreator и компонент tableview и treeview.
Подключил загоолвочный файл qyursqltreeview.h и добавил код:
------------------------
QyurSqlTreeModel model("treetable",QStringList()<<QObject::tr("Id")<<QObject::tr("ParentId")<<QObject::tr("Type")<<QObject::tr("Title")<<QObject::tr("Summary"),QStringList()<<"id"<<"parentId"<<"type"<<"title"<<"summary",-1,"title");
ui.tableView.setModel(model.sourceModel());
В таблице tableView ничего не отображается.
Вопрос простой.
Как соединить компоненты tableview и treeview добавленные через QtDesigner c QyurSqlTreeModel.
Где я ошибся?
Спасибо.
Если работает мой пример, то и у Вас не должно быть проблем. Только учитывайте, что в моём примере все объекты автоматические, то есть создаются на стеке процедуры main() и соответственно при завершении программы (то бишь завершении main) они уничтожаются. Поэтому в контексте другой процедуры следует использовать динамическую память, то есть оператор new.
Под windows7 x64, программа компилируется, но при запуске вылетает с ошибкой. Версия Qt 4.7.0.
Если у Вас есть решение этой проблемы, отпишитесь пожалуйста на iizii89@gmail.com.
Please replase the code
int QyurSqlTreeModel::getIdByIndex(const QModelIndex& index) const {
return static_cast<UserData*>(index.internalPointer())->id;
}
by this
int QyurSqlTreeModel::getIdByIndex(const QModelIndex& index) const {
if (index.isValid())
return static_cast<UserData*>(index.internalPointer())->id;
return 0;
}
Ratings & Comments
6 Comments
Собрал пример (sqltreesample), подключил к своей БД и все успешно работает. Добавил новую форму через QtCreator и компонент tableview и treeview. Подключил загоолвочный файл qyursqltreeview.h и добавил код: ------------------------ QyurSqlTreeModel model("treetable",QStringList()<<QObject::tr("Id")<<QObject::tr("ParentId")<<QObject::tr("Type")<<QObject::tr("Title")<<QObject::tr("Summary"),QStringList()<<"id"<<"parentId"<<"type"<<"title"<<"summary",-1,"title"); ui.tableView.setModel(model.sourceModel()); В таблице tableView ничего не отображается. Вопрос простой. Как соединить компоненты tableview и treeview добавленные через QtDesigner c QyurSqlTreeModel. Где я ошибся? Спасибо.
Если работает мой пример, то и у Вас не должно быть проблем. Только учитывайте, что в моём примере все объекты автоматические, то есть создаются на стеке процедуры main() и соответственно при завершении программы (то бишь завершении main) они уничтожаются. Поэтому в контексте другой процедуры следует использовать динамическую память, то есть оператор new.
Огромнейшее СПАСИБО!
Под windows7 x64, программа компилируется, но при запуске вылетает с ошибкой. Версия Qt 4.7.0. Если у Вас есть решение этой проблемы, отпишитесь пожалуйста на iizii89@gmail.com.
Please replase the code int QyurSqlTreeModel::getIdByIndex(const QModelIndex& index) const { return static_cast<UserData*>(index.internalPointer())->id; } by this int QyurSqlTreeModel::getIdByIndex(const QModelIndex& index) const { if (index.isValid()) return static_cast<UserData*>(index.internalPointer())->id; return 0; }
Большое спасибо за быстрый ответ, помогло.