Форум программистов, компьютерный форум, киберфорум
QML
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 05.07.2016
Сообщений: 71

Using QML in application

06.11.2016, 17:35. Показов 2577. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как осуществляется связь между моделью QSqlTableModel и таблицей TableView?
Как я понимаю, при написании приложений с использованием QML мы отказываемся от виджетов. Значит мы используем обычные классы, наследованные от QObject?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.11.2016, 17:35
Ответы с готовыми решениями:

Создание Android Service (background application) на Qt (QML)
Доброго времени суток, друзья. Помогите разобраться с проблемой. Есть рабочее приложение для андройда написанное на Qt с использованием...

Подсветка QML элементов QML-ного плагина в QtCreator в случае нахождения QML файлов плагина в ресурсах!
Здравствуйте! Если сделать плагин для QML и подключить его в основном проекте ну как - то так: import MiracleStudio.SkyControls 1.0 ...

QMl/QT при нажатии на кнопку должен окрыться другой qml файл
Додал anchors Вот что я сделал: import QtQuick 2.5 import QtQuick.Controls 1.4 ApplicationWindow { id: applicationWindow...

31
 Аватар для Wyn
1073 / 654 / 230
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
14.11.2016, 16:44
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от WarpDrive Посмотреть сообщение
это как говориться плохая практика
Где говорится? Кем говорится? Впервые слышу. Это самое обычное средство для предоставления в QML доступа к созданным в С++ структурам и классам.
0
Заблокирован
14.11.2016, 16:53
Цитата Сообщение от Wyn Посмотреть сообщение
Где говорится? Кем говорится?
Говориться мной, гуру Qt и QML В обычных условиях нет смысла так делать. Это плохо с токи зрения декларативного программирования. Ну конечно же я не совсем корректно выразился, это не плохая практика, а используемая в особых случаях.
Цитата Сообщение от Wyn Посмотреть сообщение
Это самое обычное средство для предоставления в QML доступа к созданным в С++ структурам и классам.
Обычно ты декларативно объявляешь свой класс С++ прямо в QML, он и создаётся автоматом. Если хочешь динамический создавать объекты в QML, для этого есть инстанциаторы...
0
 Аватар для Wyn
1073 / 654 / 230
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
14.11.2016, 17:10
Цитата Сообщение от WarpDrive Посмотреть сообщение
Говориться мной
Так и понял.
Цитата Сообщение от WarpDrive Посмотреть сообщение
Обычно ты декларативно объявляешь свой класс С++ прямо в QML, он и создаётся автоматом. Если хочешь динамический создавать объекты в QML, для этого есть инстанциаторы...
Ещё раз повторю: инъекция в глобальный контекст QML созданного в С++ элемента - это самое обычное действие для QML. Есть десятки курсов и мануалов, которые это подтверждают и описывают. Если ты логику своего backend переместил в QML, то это исключительно твой выбор, который отнюдь не является и не претендует на истину в последней инстанции. Большинство людей логику backend всё же предпочитают реализовывать в C++.
Яркий пример - топик. Для моделей, созданных в с++, отнюдь не требуется их регистрация в QML. Для них достаточна только инъекция в контекст.
Странно, что вообще спор возникает о столь распространённой практике.
1
Заблокирован
14.11.2016, 17:23
Эта практика чаще используется для интеграции в QML уже созданного какого - то софта на С++, для нового софта этого не потребует. Ладно, на самом деле спор ни о чём, всё зависит от задачи
0
0 / 0 / 0
Регистрация: 05.07.2016
Сообщений: 71
15.11.2016, 15:17  [ТС]
Цитата Сообщение от Wyn Посмотреть сообщение
Ещё раз повторю: инъекция в глобальный контекст QML созданного в С++ элемента - это самое обычное действие для QML. Есть десятки курсов и мануалов, которые это подтверждают и описывают. Если ты логику своего backend переместил в QML, то это исключительно твой выбор, который отнюдь не является и не претендует на истину в последней инстанции. Большинство людей логику backend всё же предпочитают реализовывать в C++.
Яркий пример - топик. Для моделей, созданных в с++, отнюдь не требуется их регистрация в QML. Для них достаточна только инъекция в контекст.
Странно, что вообще спор возникает о столь распространённой практике.
Вы имеете ввиду что функционал программы лучше делать на С++, а на QML возлагается только интерфейс?
Но ведь я правильно понимаю что можно вообще отказаться от C++ и использовать javascript?
0
Заблокирован
15.11.2016, 15:45
Цитата Сообщение от OpenSky Посмотреть сообщение
Вы имеете ввиду что функционал программы лучше делать на С++, а на QML возлагается только интерфейс?
Обычно так и делают. Точнее на С++ делают "тяжёлый" функционал, который нельзя сделать на JS или тот функционал, который бы хотелось сильнее спрятать, ведь QML бывает как вообще открытые в отдельных файлах, так и в ресурсах, откуда его можно так же достать. Хотя есть и компилятор для QML, который делает байт код и вшивает его в бинарь, но это отдельная песня.

Цитата Сообщение от OpenSky Посмотреть сообщение
Но ведь я правильно понимаю что можно вообще отказаться от C++ и использовать javascript?
Можно. Чисто на QML можно написать и очень крутой софт, но обычно всё же комбинируют С++ и QML, то есть используют С++ классы как модули для QML
0
 Аватар для Wyn
1073 / 654 / 230
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
16.11.2016, 10:48
Цитата Сообщение от OpenSky Посмотреть сообщение
Вы имеете ввиду что функционал программы лучше делать на С++, а на QML возлагается только интерфейс?
Но ведь я правильно понимаю что можно вообще отказаться от C++ и использовать javascript?
Всё зависит от архитектуры вашего приложения. Но да, на С++ лучше писать backend. На QML - frontend. Это задумывалось изначально, когда разрабатывали QML.
Вы конечно можете использовать и просто JS, право ваше, но то тут, то там у вас будут возникать проблемы, тк многие механизмы Qt из QML недоступны или урезаны.
0
0 / 0 / 0
Регистрация: 05.07.2016
Сообщений: 71
16.11.2016, 11:52  [ТС]
Цитата Сообщение от Wyn Посмотреть сообщение
Всё зависит от архитектуры вашего приложения. Но да, на С++ лучше писать backend. На QML - frontend. Это задумывалось изначально, когда разрабатывали QML.
Вы конечно можете использовать и просто JS, право ваше, но то тут, то там у вас будут возникать проблемы, тк многие механизмы Qt из QML недоступны или урезаны.
А ведь можно вместо С++ использовать Pyton? Из этого много минусов вытекает?
И еще вопрос, в QML же нет таблицы типа tableView из виджетов? Нужно создавать собственную?
0
 Аватар для Wyn
1073 / 654 / 230
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
16.11.2016, 12:09
Цитата Сообщение от OpenSky Посмотреть сообщение
А ведь можно вместо С++ использовать Pyton? Из этого много минусов вытекает?
Я PyQt не пользуюсь, поэтому на такой вопрос ответить затрудняюсь.
Цитата Сообщение от OpenSky Посмотреть сообщение
И еще вопрос, в QML же нет таблицы типа tableView из виджетов? Нужно создавать собственную?
Как это нет? Всё есть.
0
0 / 0 / 0
Регистрация: 05.07.2016
Сообщений: 71
16.11.2016, 12:20  [ТС]
Цитата Сообщение от Wyn Посмотреть сообщение
Как это нет? Всё есть.
У этой таблицы, насколько я понимаю, модель должна быть типа List. И здесь QSqlTableModel подойдет?
А где можно прочитать, как оформить вид таблицы, сделать выделение для каждой ячейки, присвоить сигналы при клике на ячейку и т.д?
0
 Аватар для Wyn
1073 / 654 / 230
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
16.11.2016, 12:29
Цитата Сообщение от OpenSky Посмотреть сообщение
насколько я понимаю
Неправильно понимаете. Модель - любая. Но нужно её нужно оформлять.
http://doc.qt.io/qt-5/qtquick-... lview.html
Цитата Сообщение от OpenSky Посмотреть сообщение
А где можно прочитать, как оформить вид таблицы, сделать выделение для каждой ячейки, присвоить сигналы при клике на ячейку и т.д?
В официальной документации. Разворачиваете её и начинаете изучать QML.
Либо берёте специальную литературу или курсы и изучаете по ним. Выше я ссылку давал на список разнообразной литературы.
0
Заблокирован
16.11.2016, 12:29
Цитата Сообщение от OpenSky Посмотреть сообщение
У этой таблицы, насколько я понимаю, модель должна быть типа List. И здесь QSqlTableModel подойдет?
Ты то ли не внимательный, то ли лоботряс. Я тебе уже сто раз говорил, что в model элемента TableView можно сувать любую модель, наследованную отQAbstractItemModel
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.11.2016, 12:29

Как подключить QML-файл в C++ по моде, а также получить ссылки на QML-элементы в C++
Читал в интернете, как подключать QML-файлы. Кто-то использует QQmlView, кто-то QQmlApplicationEngine, а ещё приводят связку QQmlEngine и...

qml - что из себя представляет qml
Решил написать игру на Qt,выбор остановился на танчиках.Посмотрел примеры и понял что все игры ,что там даны написаны с помощью...

QML вызов другого qml
Всем привет. Название темы немного неверное. Вообщем проблема такая. Делаю игру на qml, и есть main_menu.qml, далее мне необходимо вызвать...

Разница запуска функция Console Application и VCL Forms Application
Ситуация следующая. Есть устройство подключенное к компу посредством USB и библиотека для работы с ним с тремя функциями. Есть два проекта...

Application has failed to start because the application configuration is incorrect (+LNK4099, 4098)
Получил тестовое задание на джуна C++. Проект - Недоделанный арканоид на собственном движке конторы. Моя задача допилить игру. В задании 2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru