Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [qt] возможности qml


Автор: NoNo 10.1.2014, 20:54
Добрый вечер!!!
Интересует следующий вопрос.
Возможно ли на qt сделать какую-нибудь серьезную прогу с интерфейсом qml, чтобы она отображала qsqltablemodel qsqlquerymodel и т.д. и насколько это разумно????

Автор: vinter 11.1.2014, 08:34
Это возможно и разумно.

Автор: NoNo 11.1.2014, 09:45
Хорошо, как тогда можно перетащить в qml qsqltablemodel или qsqlquerymodel?????
я в нете нашел только как можно работать с listmodel.

Автор: vinter 11.1.2014, 11:06
Нужно просто адаптировать эти модели к тем, что возможны в QML. ВОт можешь посмотреть http://qt-project.org/wiki/How_to_use_a_QSqlQueryModel_in_QML и http://qt-project.org/wiki/QML_and_QSqlTableModel. QML просто требует определённой структуры от моделей, которые используют базовые View. Если же отойти от этого, то можно пихать модель любого типа, но View придётся делать свой. В общем, с этим делом надо разбираться, тут наскоком дело не решается.

Автор: NoNo 12.1.2014, 18:17
Спасибо.
А вообще для десктопа следует использовать qml??? Я просто читал на одном из форумов, что QT потихоньку отказывается от widget-ов.

Автор: vinter 12.1.2014, 20:36
использовать или нет решать тебе, но ты читал правду. Декларативный путь описания UI превалирует сейчас.

Автор: NoNo 14.1.2014, 00:58
Цитата(vinter @ 12.1.2014,  20:36)
использовать или нет решать тебе, но ты читал правду. Декларативный путь описания UI превалирует сейчас.

Спасибо...буду осваивать qml (уже начал))) глядишь и разберусь)

Автор: NoNo 25.1.2014, 20:08
Цитата(vinter @ 11.1.2014,  11:06)
Нужно просто адаптировать эти модели к тем, что возможны в QML. ВОт можешь посмотреть http://qt-project.org/wiki/How_to_use_a_QSqlQueryModel_in_QML и http://qt-project.org/wiki/QML_and_QSqlTableModel. ....

Согласно данным примерам необходимо задать роли в модели, но в классе QSqlQueryModel нет метода setRoleNames(), и данные примеры не работают. Как можно сделать иначе???? у меня Qt5.2

Автор: vinter 26.1.2014, 08:42
QSqlQueryModel является потомком QAbstractItemModel, а значит setRoleNames() метод там должен быть, другое дело, что он помечен как obsolete и рекомендуется использовать другой подход: просто переопределить метод roleNames(). Это всё есть в документации.

Автор: NoNo 26.1.2014, 16:14
Цитата(vinter @ 26.1.2014,  08:42)
QSqlQueryModel является потомком QAbstractItemModel, а значит setRoleNames() метод там должен быть, другое дело, что он помечен как obsolete и рекомендуется использовать другой подход: просто переопределить метод roleNames(). Это всё есть в документации.

Спасибо. Вроде разобрался.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)