Russian Qt Forum
Ноябрь 23, 2024, 11:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: qml для работы с базой данных  (Прочитано 13530 раз)
nono
Гость
« : Январь 10, 2014, 21:07 »

Добрый вечер!!!
Вопрос следующий.
Возможно ли на разработать приложение по работе с базой данных с интерфейсом qml, чтоб можно было работать с qsqltablemodel qsqlquerymodel и на сколько это корректно???
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #1 : Январь 10, 2014, 22:26 »

делай модели на С++ и через setContextProperty экспортируй их в QML. В QML эту модель ставишь на нужное тебе view.
Записан
nono
Гость
« Ответ #2 : Январь 10, 2014, 23:19 »

делай модели на С++ и через setContextProperty экспортируй их в QML. В QML эту модель ставишь на нужное тебе view.
Тогда можно подсказать как передать в qml файл модель QSqlQueryModel и QSqlTableModel Непонимающий?
Просто у меня большая база и есть таблицы у которых около 100 столбцов. Все что я накопал в google это только qml и listmodel либо перегрузка абстрактных классов и задание в них ролей.... только с моими таблицами по моему это будет геморройно.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #3 : Январь 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.
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #4 : Январь 11, 2014, 18:12 »

Несмотря на слово "Quick", слово "геморройно" подходит больше. Это слово будет сопутствовать вам весь цикл разработки на QML.
Qt Quick - это Qt UI Creation Kit. Так что Quick не совсем означает то, что вы думаете.
Но могу сказать, что UI делается действительно быстро. Траблы есть, но не слишком уж гемморойные.
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #5 : Январь 11, 2014, 19:20 »

Но могу сказать, что UI делается действительно быстро. Траблы есть, но не слишком уж гемморойные.
Хочу добавить, если не пытаться на QML делать десктопные программы, то гемморой не очень большой. Улыбающийся
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #6 : Январь 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). И это создаёт ложное впечатление, что на этой технологии можно написать всё без привлечения С++.
« Последнее редактирование: Январь 11, 2014, 19:42 от Alex Custov » Записан
nono
Гость
« Ответ #7 : Январь 12, 2014, 18:14 »

Хочу добавить, если не пытаться на QML делать десктопные программы, то гемморой не очень большой. Улыбающийся
То есть для десктопных приложений лучше все-таки отказаться от qml??? Я на каком-то форуме читал, что Qt потихоньку отказывается от widget-ов и переходит на qml, собственно почему я и поднял этот вопрос. Пишу на Qt достаточно давно, но с qml как то не заморачивался. Но программки делаю пока только для компов.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #8 : Январь 12, 2014, 18:41 »

То есть для десктопных приложений лучше все-таки отказаться от qml??? Я на каком-то форуме читал, что Qt потихоньку отказывается от widget-ов и переходит на qml

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

Сообщений: 4350



Просмотр профиля
« Ответ #9 : Январь 12, 2014, 18:48 »

То есть для десктопных приложений лучше все-таки отказаться от qml???
Однозначно.
QML хорош когда вам, скажем, для игрушки понадобиться добавить выезжающие кнопочки/панельки в разных местах, да с поддержкой анимации, спецэффектов и всяких плюшек.
А widgets еще QML переживет. Улыбающийся
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #10 : Январь 12, 2014, 21:22 »

QML хорош когда вам, скажем, для игрушки понадобиться добавить выезжающие кнопочки/панельки в разных местах, да с поддержкой анимации, спецэффектов и всяких плюшек.

Самое интересное, что это тоже миф - есть же animation framework, просто в QML анимации не нужно программировать.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #11 : Январь 12, 2014, 21:53 »

Самое интересное, что это тоже миф - есть же animation framework, просто в QML анимации не нужно программировать.
Ну да, в этом и смысл, что все анимации и состояния задаются очень просто и легко. Об этом и речь, а внутри крутиться animation framework.
Записан
nono
Гость
« Ответ #12 : Январь 14, 2014, 00:56 »

Всем спасибо! Разъяснили!!!
Пока буду использовать виджеты и потихоньку осваивать qml...как раз к тому времени как и разберусь в нем - qml повзрослеет))))
Записан
twp
Гость
« Ответ #13 : Январь 14, 2014, 01:59 »

А чего ждать? Он уже сейчас вполне юзабельный. А на счет анимации, так в 5.2 ввели новый граф сцены и новый QML элемент Animator, который оперирует напрямую с графом сцены в его же потоке, а не главном потоке приложения, как это работает со стандартными виджетами. Ну и есть QtQuick Controls - типа аналога виджетов для QML. B общем если есть намерение в будущем разрабатывать под мобильные платформы (да и не только), то пора бы изучать QML. Стандартные виджеты также можно использовать на мобильных платформах, но приложения будут выглядеть черезчур статически. И придется немало потрудиться, чтоб приложение "ожило". Т.е. вместо того чтоб работать над логикой приложения, придется много времени уделять допиливанию UI.
Записан
nono
Гость
« Ответ #14 : Январь 25, 2014, 22:52 »

http://qt-project.org/wiki/How_to_use_a_QSqlQueryModel_in_QML - в этом примере, в реализации конструктора унаследованного от QSqlQueryModel классе, вызывается метод setRoleNames(). У меня Qt5.2 и данного метода в этом классе нет. Как можно решить данную проблему???
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 23.