Хочу начать изучать QML для разработки собственных, относительно небольших, проектов. На работе крепко сидим на виджетах, поэтому QML коллегам не интересен.
Посоветуйте, пожалуйста, статьи / литературу по актуальным техникам разработки UI на QML в С++ проектах.
Как работает QML более-менее представляю. Но пока он достаточно криво ложится в мою архитектуру (голову).
Обычно, для каждой (абстрактной) задачи я пишу пару виджет+контроллер. Например, нужно сделать некий чат. Тогда у меня будут классы (упрощённо):
1. Контроллер чата. Отвечает за коннект / дисконнект к серверу, приём / отправку сообщений, обработку списка (модели) юзеров. ChatController.h/cpp
2. Виджет входа: вызывается из контроллера для запроса логина/пароля/сервера и т.п. Создаётся 1 раз при запуске. LoginWidget.h/cpp
3. Виджет чата: текстбокс с историей сообщений (обновляется по сигналу от контроллера), поле для ввода сообщения (отправляет сигнал контроллеру), вьюха со списком юзеров (использует модель из контроллера). Прочие ui-свистелки. MainView.h/cpp
Здравствуйте, SaZ, Вы писали:
SaZ>Хочу начать изучать QML для разработки собственных, относительно небольших, проектов. На работе крепко сидим на виджетах, поэтому QML коллегам не интересен. SaZ>Посоветуйте, пожалуйста, статьи / литературу по актуальным техникам разработки UI на QML в С++ проектах.
[...]
Возможно, вас заинтересует вот эта статья. Виджета для логина, о котором вы упоминаете, нет, но в остальном — весьма подробно.
Здравствуйте, visual_wind, Вы писали:
_>Возможно, вас заинтересует вот эта статья. Виджета для логина, о котором вы упоминаете, нет, но в остальном — весьма подробно.
Да, спасибо. Пример с чатом брал из головы. На практике приложения значительно сложнее.
Хочется ещё посмотреть на программное создание QML компонент. Всё-таки пока несколько непривычно.
Здравствуйте, SaZ, Вы писали: SaZ>Хочу начать изучать QML для разработки собственных, относительно небольших, проектов. На работе крепко сидим на виджетах, поэтому QML коллегам не интересен.
Если не секрет, на каких виджетах? Стандартные или сам еще писали? Может быть сторонние какие то?
Может быть спрашивал когда то, но очень нужны нормальные плавающие диалоги (докирующиеся окана), взамен тех что есть в Qt.
Здравствуйте, nen777w, Вы писали:
N>Если не секрет, на каких виджетах? Стандартные или сам еще писали? Может быть сторонние какие то? N>Может быть спрашивал когда то, но очень нужны нормальные плавающие диалоги (докирующиеся окана), взамен тех что есть в Qt.
На стандартных + самописных. Я к тому, что используем классические виджеты, а не новомодный QML.
С док окнами решили не заморачиватсья и терпеть стандартные. Т.к. слишком уж трудоёмкая задача выходит (относительно приоритета разработки). Нам пока главное функционал, а не юзабилити.
Здравствуйте, SaZ, Вы писали:
SaZ>Как можно объявить слот в QML?
Здесь достаточно подробно все расписано. В частности
Connecting Signals to Methods and Signals
Signal objects have a connect() method to a connect a signal either to a method or another signal. When a signal is connected to a method, the method is automatically invoked whenever the signal is emitted. (In Qt terminology, the method is a slot that is connected to the signal; all methods defined in QML are created as Qt slots.) This enables a signal to be received by a method instead of a signal handler.
Здравствуйте, visual_wind, Вы писали:
_>Здравствуйте, SaZ, Вы писали:
SaZ>>Как можно объявить слот в QML?
_>Здесь достаточно подробно все расписано. В частности _>
_>Connecting Signals to Methods and Signals
_>Signal objects have a connect() method to a connect a signal either to a method or another signal. When a signal is connected to a method, the method is automatically invoked whenever the signal is emitted. (In Qt terminology, the method is a slot that is connected to the signal; all methods defined in QML are created as Qt slots.) This enables a signal to be received by a method instead of a signal handler.
_>
Похоже, что я пытаюсь освоить одновременно слишком многое. Скоро поеду на тренинг, может прошарюсь
Мне просто мои нынешние потуги сильно напоминают время, когда я только начал осваивать кутэ (вроде, 4.5 тогда была). Месяцев 5 был жёсткий говнокод, пока мне не попался качественный лид, который быстро всё рассказал на простых примерах.
Здравствуйте, SaZ, Вы писали:
M>>Ну как, съездил? Многому научился? А плагины для QML делать умеешь?
SaZ>Отлично съездил(sarcasm). Тренинг отменили, т.к. не собрали достаточно людей.
А где он должен был проходить? Недавно видел на Qt-шном сайте, что вроде 17-20 июня? Я как раз начал чуть раньше опять кьютом интересоваться, может быть тоже прокатился был. Только жаль, поздно узнал. Им пиара не хватает. Кстати, могли бы и тут постить, было бы полезно.
Здравствуйте, Marty, Вы писали:
M>А где он должен был проходить? Недавно видел на Qt-шном сайте, что вроде 17-20 июня? Я как раз начал чуть раньше опять кьютом интересоваться, может быть тоже прокатился был. Только жаль, поздно узнал. Им пиара не хватает. Кстати, могли бы и тут постить, было бы полезно.
Здравствуйте, -n1l-, Вы писали:
N>Форумы действительно не очень, так что пишите в irc каналы.
Писать можно конкретные вопросы, на которые с тем же успехом отвечают на stackoverflow или тут. А хочется именно best practice, которые в irc никто строчить не будет.
Говорю пишите в irc, там вам ответят создатели этого qml, откуда еще можно достать эти ваши best practice?
Хотя скорее всего такого понятия для qml нет.