Russian Qt Forum

Qt => Qt Quick => Тема начата: nono от Январь 10, 2014, 21:07



Название: qml для работы с базой данных
Отправлено: nono от Январь 10, 2014, 21:07
Добрый вечер!!!
Вопрос следующий.
Возможно ли на разработать приложение по работе с базой данных с интерфейсом qml, чтоб можно было работать с qsqltablemodel qsqlquerymodel и на сколько это корректно???


Название: Re: qml для работы с базой данных
Отправлено: Alex Custov от Январь 10, 2014, 22:26
делай модели на С++ и через setContextProperty экспортируй их в QML. В QML эту модель ставишь на нужное тебе view.


Название: Re: qml для работы с базой данных
Отправлено: nono от Январь 10, 2014, 23:19
делай модели на С++ и через setContextProperty экспортируй их в QML. В QML эту модель ставишь на нужное тебе view.
Тогда можно подсказать как передать в qml файл модель QSqlQueryModel и QSqlTableModel ????
Просто у меня большая база и есть таблицы у которых около 100 столбцов. Все что я накопал в google это только qml и listmodel либо перегрузка абстрактных классов и задание в них ролей.... только с моими таблицами по моему это будет геморройно.


Название: Re: qml для работы с базой данных
Отправлено: Alex Custov от Январь 11, 2014, 14:39
Тогда можно подсказать как передать в qml файл модель QSqlQueryModel и QSqlTableModel ????

Я же написал как. http://qt-project.org/doc/qt-5.1/qtqml/qtqml-cppintegration-contextproperties.html

Все что я накопал в google это только qml и listmodel либо перегрузка абстрактных классов и задание в них ролей.... только с моими таблицами по моему это будет геморройно.

Несмотря на слово "Quick", слово "геморройно" подходит больше. Это слово будет сопутствовать вам весь цикл разработки на QML.


Название: Re: qml для работы с базой данных
Отправлено: kibsoft от Январь 11, 2014, 18:12
Несмотря на слово "Quick", слово "геморройно" подходит больше. Это слово будет сопутствовать вам весь цикл разработки на QML.
Qt Quick - это Qt UI Creation Kit. Так что Quick не совсем означает то, что вы думаете.
Но могу сказать, что UI делается действительно быстро. Траблы есть, но не слишком уж гемморойные.


Название: Re: qml для работы с базой данных
Отправлено: Old от Январь 11, 2014, 19:20
Но могу сказать, что UI делается действительно быстро. Траблы есть, но не слишком уж гемморойные.
Хочу добавить, если не пытаться на QML делать десктопные программы, то гемморой не очень большой. :)


Название: Re: qml для работы с базой данных
Отправлено: Alex Custov от Январь 11, 2014, 19:37
Qt Quick - это Qt UI Creation Kit. Так что Quick не совсем означает то, что вы думаете.

Это обыкновенная чехарда со словами, которая несёт двойной смысл. Наподобие SPECIAL в Fallout. Я уверен на 100%, что основной смысл здесь - Quick, а расшифровку уже подгоняли.

Хочу добавить, если не пытаться на QML делать десктопные программы, то гемморой не очень большой. :)

Однако политика партии другая, хоть пока и неофициально (http://blog.qt.digia.com/blog/2012/04/18/qt-5-c-and-qt-widgets). И это создаёт ложное впечатление, что на этой технологии можно написать всё без привлечения С++.


Название: Re: qml для работы с базой данных
Отправлено: nono от Январь 12, 2014, 18:14
Хочу добавить, если не пытаться на QML делать десктопные программы, то гемморой не очень большой. :)
То есть для десктопных приложений лучше все-таки отказаться от qml??? Я на каком-то форуме читал, что Qt потихоньку отказывается от widget-ов и переходит на qml, собственно почему я и поднял этот вопрос. Пишу на Qt достаточно давно, но с qml как то не заморачивался. Но программки делаю пока только для компов.


Название: Re: qml для работы с базой данных
Отправлено: Alex Custov от Январь 12, 2014, 18:41
То есть для десктопных приложений лучше все-таки отказаться от qml??? Я на каком-то форуме читал, что Qt потихоньку отказывается от widget-ов и переходит на qml

Это миф, появившейся из статьи Нолла что я дал выше. На QML нельзя перейти банально потому, что там нет и 20% возможностей Qt/C++. Вы будете вынуждены писать чудовищный спагетти-код, когда управление будет непрерывно скакать из C++ в QML и назад. Под кажущейся простотой синтаксиса и красотой идеи лежит крайне малофункциональный движок, который рушит всю красоту. Возможно, в Qt6 будет что-то похожее на правду, посмотрим.


Название: Re: qml для работы с базой данных
Отправлено: Old от Январь 12, 2014, 18:48
То есть для десктопных приложений лучше все-таки отказаться от qml???
Однозначно.
QML хорош когда вам, скажем, для игрушки понадобиться добавить выезжающие кнопочки/панельки в разных местах, да с поддержкой анимации, спецэффектов и всяких плюшек.
А widgets еще QML переживет. :)


Название: Re: qml для работы с базой данных
Отправлено: Alex Custov от Январь 12, 2014, 21:22
QML хорош когда вам, скажем, для игрушки понадобиться добавить выезжающие кнопочки/панельки в разных местах, да с поддержкой анимации, спецэффектов и всяких плюшек.

Самое интересное, что это тоже миф - есть же animation framework, просто в QML анимации не нужно программировать.


Название: Re: qml для работы с базой данных
Отправлено: Old от Январь 12, 2014, 21:53
Самое интересное, что это тоже миф - есть же animation framework, просто в QML анимации не нужно программировать.
Ну да, в этом и смысл, что все анимации и состояния задаются очень просто и легко. Об этом и речь, а внутри крутиться animation framework.


Название: Re: qml для работы с базой данных
Отправлено: nono от Январь 14, 2014, 00:56
Всем спасибо! Разъяснили!!!
Пока буду использовать виджеты и потихоньку осваивать qml...как раз к тому времени как и разберусь в нем - qml повзрослеет))))


Название: Re: qml для работы с базой данных
Отправлено: twp от Январь 14, 2014, 01:59
А чего ждать? Он уже сейчас вполне юзабельный. А на счет анимации, так в 5.2 ввели новый граф сцены и новый QML элемент Animator, который оперирует напрямую с графом сцены в его же потоке, а не главном потоке приложения, как это работает со стандартными виджетами. Ну и есть QtQuick Controls - типа аналога виджетов для QML. B общем если есть намерение в будущем разрабатывать под мобильные платформы (да и не только), то пора бы изучать QML. Стандартные виджеты также можно использовать на мобильных платформах, но приложения будут выглядеть черезчур статически. И придется немало потрудиться, чтоб приложение "ожило". Т.е. вместо того чтоб работать над логикой приложения, придется много времени уделять допиливанию UI.


Название: Re: qml для работы с базой данных
Отправлено: nono от Январь 25, 2014, 22:52
http://qt-project.org/wiki/How_to_use_a_QSqlQueryModel_in_QML (http://qt-project.org/wiki/How_to_use_a_QSqlQueryModel_in_QML) - в этом примере, в реализации конструктора унаследованного от QSqlQueryModel классе, вызывается метод setRoleNames(). У меня Qt5.2 и данного метода в этом классе нет. Как можно решить данную проблему???


Название: Re: qml для работы с базой данных
Отправлено: Alex Custov от Январь 25, 2014, 23:03
в этом примере, в реализации конструктора унаследованного от QSqlQueryModel классе, вызывается метод setRoleNames(). У меня Qt5.2 и данного метода в этом классе нет. Как можно решить данную проблему???

переопределить roleNames(). http://qt-project.org/doc/qt-5.1/qtcore/qabstractitemmodel.html


Название: Re: qml для работы с базой данных
Отправлено: nono от Январь 26, 2014, 01:45
Где можно найти пример модель (qt) представление (qml) для qt 5, чтобы пример был простой, а главное работал???
В нете полно всякой ерунды. Все примеры усложненные и не фига не работающие. Выпендрица хотят что ли.
Нужен просто "Простой пример", вот класс от QSqlTableModel(два поля, две записи) вот qml-представление.

P.S.
Усложненными я имею виду, что воплощаю свою гениальную идею, разработчик примера уводит далеко от сути т.е. пример:
" Я покажу вам как сделать модель на qt и запихнуть его в qml на примере в котором будет использоваться фигово туча всяких других прибамбасов, да еще модель будет очень не стандартная, а все выложенные исходники не будут работать.

Простым примером можно назвать http://qt-project.org/wiki/How_to_use_a_QSqlQueryModel_in_QML , но только это под qt5 не работает.
а так как я в qml вообще новичок, то уже полночи сижу и разобраться не могу.


Название: Re: qml для работы с базой данных
Отправлено: nono от Январь 26, 2014, 16:13
Все. Вроде разобрался.


Название: Re: qml для работы с базой данных
Отправлено: kaass от Февраль 11, 2014, 16:30
Все. Вроде разобрался.
И что же у вас получилось?