![]() |
|
![]() ![]() ![]() |
|
Aline |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
Доброго времени суток! У меня есть необходимость создания подобного рода графических объектов:
![]() Как это можно сделать? Рисовать в паинтере на сцене? |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 3 Всего: 56 |
ну да, создайте общие виджеты(где сущности пересекаются) и рисуйте в paintEvent() QWdget'а. Это справедливо если не использовать QML, там немного по другому, но суть та же.
Это сообщение отредактировал(а) vinter - 28.10.2013, 09:08 |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
Для новых проектов рекомендуется использование QML.
|
|||
|
||||
Aline |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
bsa, QML вообще не знаю, с Qt то недавно только познакомилась.
|
|||
|
||||
Amp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 7 Всего: 17 |
||||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
Сотрудниками Digia.
Qml рекомендуется использовать для описания интерфейсов и всей связанной с ними логики. Бизнес логику стоит писать на плюсах. |
|||
|
||||
Amp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 7 Всего: 17 |
Агитируют они уже давно, а desktop components только-только затащили в Qt. Технология, по-большому счету, совершенно не обкатана, десктопных приложений пока не видно. Хотя теоретически для изображенного выше интерфейса должна бы идеально подойти.
|
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 3 Всего: 56 |
Amp, приложения есть. На на них же не должно быть красными буквами написано: QML!
Кто на QML писал, тот на старое не вернётся. Мне удавалось на 1.1 коммерческие проекты писать, а 2.0 куда более взрослый. Простые виджеты удобны тогда, когда в приложении не нужна анимация и интерфейс, по сути, стандартен. Когда интерфейс нарисован дизайнером QML использовать куда приятнее. Это сообщение отредактировал(а) vinter - 28.10.2013, 19:09 |
|||
|
||||
Amp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 7 Всего: 17 |
О чем и речь. Большинство приложений имеют стандартный интерфейс, в свете чего рекомендация брать под их разработку qml выглядит странновато. Другой разговор - программа как у автора темы на скриншоте. |
|||
|
||||
Aline |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
vinter, а в чём прелести QML? Можно примерчик?
|
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 3 Всего: 56 |
QML декларативный язык. На декларативном языке проще GUI описывать. QML это ответ Qt на XAML от MS. Пример? Даже не знаю, погуглите QML examples - их полно.
|
|||
|
||||
Aline |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
vinter, То что я видела - мне не подходит. Может я не всё видела. В Qt в примерах есть использование QML, но это всё не то. Мне посоветовали QWT использовать, но пока я никак не могу получить *.dll . Там как раз куча готовых технических виджетов
|
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 3 Всего: 56 |
Aline, я не знаю твоей задачи. Лучше слушай тех кто знает. На QML можно реализовать всё, что можно на Qt. Правда, в некоторых случаях это будет сделать сложнее чем на виджетах. Писать тебе, вот ты и выбирай.
|
|||
|
||||
Aline |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
vinter, я бы выбрала QWT, но пока даже не могу его нормально установить и подключить :(
|
|||
|
||||
CompWorm |
|
|||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
так не проще?
|
|||
|
||||
Aline |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
CompWorm, нет,это не то
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
Aline, освой qml. один день потеряешь на него, зато потом за 5 минут долетишь сделаешь свои приборы.
|
|||
|
||||
Aline |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
bsa, мне так много всего надо освоить
![]() |
|||
|
||||
Aline |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
bsa, читаю про QML и совершенно не понимаю как он можем помочь в моем случае. Может подскажите? Или пример приведете? Насколько я успела прочесть и понять, то там использование стандартных каких то элементов, а также изменение каких то их свойств, удобно работать с рисунками и анимацией. Но у меня то нестандартная графика, каким образом её реализовать в QML? Хоть натолкните на мысль...
|
|||
|
||||
Amp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 7 Всего: 17 |
Например через Canvas. Впрочем с таким же успехом можно просто в paint-event обычного виджета рисовать.
|
|||
|
||||
Aline |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
Amp, ну вот я и не понимаю в чём прелесть QML, если всё равно рисовать "вручную"?
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
в том, что в случае qml ты код пишешь на JS, а в случае widgets ты пишешь на С++. А потом, возможно, тебе qml понравится, и ты 90% проекта будет на нем делать.
![]() |
|||
|
||||
Amp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 7 Всего: 17 |
Aline, прелесть начинается тогда, когда все элементы у тебя уже как-то где-то написаны и доступны в qml. Ты их раскладываешься по сцене, назначаешь обработчики, биндишь свойства и смотришь как это все крутится-вертится.
Взять те же коммерческие чарты от Digia - там почти весь код на C++/QGraphicsView к которому прилагается небольшая обвязка для QtQuick API. |
|||
|
||||
CompWorm |
|
|||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
вот поэтому я на него плюнул. очень на любителя... к тому же не понятно как все эти свистелки потом портировать на QT6 ... и далее. переход с QT3 на QT4 был полным фиаско. сыроват этот квик, не вселяет уверенности. к тому же если в проекте участвуют разрабы c++, то не факт что они хорошо на js шпарят. прошу прощения за троллинг. |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 3 Всего: 56 |
JS опасен в QML
![]() |
|||
|
||||
Aline |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
bsa, JS я не знаю, конечно в нём не проблема разобраться, там не так сложно, но блин разбираться еще с одним языком - для меня это несколько перебор. У меня и так мозг уже работает наперекосяк: параллельно рабираюсь с Qt, с его дополнениями и тут же правлю старые проекты в C++ Builder
![]() Добавлено через 2 минуты и 29 секунд Amp, ну вот в Qwt есть уже элементы, которые как то где то описаны ![]() |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
||||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
vinter, "все есть яд, все есть лекарство". Естественно, что QML создан исключительно для создания интерфейсов и их логики (логики интерфейсов, а не основной логики программы). Поэтому, если кто-то пихает часть или всю бизнес логику туда, то он сам себе злобный буратина.
|
|||
|
||||
Amp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 7 Всего: 17 |
Дело за малым - написать биндинг и протащить классы в qml ![]() Я раньше думал, что QtQuick выльется в более навороченный аналог QGraphicsView с декларативной оберткой на JS в который можно добавлять помимо шейпов уже существующие контролы, делать эффекты в пару строк, связывать свойства и т.п. Плюс C++ API для доступа к сцене. Ну то есть я ожидал аналог WPF/JavaFX, а получилось все по-другому. У нас есть OpenGL сценграф с прикрученным сбоку JS-движком, который, грубо говоря, гоняет по экрану полигоны с текстурами (не просто так конечно, а с оптимизациями, батчингом, текстурным атласами) и за рендеринг более высокоуровневых примитивов почти не отвечает, отдавая это на откуп пользователю. А его плюсовый API местами весьма низкоуровневый. Это сообщение отредактировал(а) Amp - 6.11.2013, 11:27 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |