![]() |
|
|
![]()
|
|
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 5 Всего: 44 |
собственно сабж кто еще не в курсе
|
|||
|
||||
| SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Из того что я увидел я ничего не понял. Где обычные компоненты? QWidget, QPushButton и т.д. и т.п. Они предлагают делать интерфейс программы на основе png картинок и графических примитивов (прямоугольник, треугольник, эллипс) ? Будет ли каким-то боком привязана системе стилей? Как реализуется интерфейс с диалоговыми окнами (которые должны перемещаться за пределы главного окна) ? Пока это всё мне напоминает QGraphicsView с примитивами типа QGraphicsRectItem, который в принципе не несет сам по себе никакой смысловой нагрузки. Вероятно написание комплексных компонентов типа QTreeView еще предстоит. Не понятно правда ка кони собираются это сделать, импортировать готовые или реализовывать свои на основе QML языка. --- Судя по документации реализовано только 3 виджета:
Это сообщение отредактировал(а) SABROG - 28.1.2010, 15:57 |
||||
|
|||||
| Madonna |
|
|||
![]() Forbidden love... ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 22.1.2009 Где: Москва Репутация: 3 Всего: 4 |
Сильно напоминает XAML.
Хороший вопрос, где обычные компоненты..? И насчет совместимости с предыдущими версиями. --------------------
Best regards, Madonna |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 5 Всего: 44 |
SABROG, тут не надо путать разработку обычных приложений(на базе QWidget) - все это осталось. что касается QML - да, никаких привычных элементов управления нет, все нужно делать самому. Если например посмотреть демки и примеры для DeclarativeUI, то можно понять что нет никаких проблем с кнопочками. Системных стилей никаких нет, разве что самому их не сделать.
о какой совместимости идет речь? ЗЫ разработка на базе QWidget & QML - это разные направления. так что пугать не надо ЗЫЫ пишите исчо, попробую на все ответить Добавлено через 3 минуты и 7 секунд на что это похоже Это сообщение отредактировал(а) chaos - 28.1.2010, 17:20 |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Скорее эта ссылка. Грубо говоря QML для извращенцев, которым нужно не ехать, а шашечки. Бухгалтерские программы на нем врятли кто будет писать. Из примеров по JavaFx я увидел, что все GUIшные элементы экспортируются из Swing библиотеки, в Qt пока такого нет. Это сообщение отредактировал(а) SABROG - 28.1.2010, 18:35 |
|||
|
||||
| Amp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 7 Всего: 17 |
Не совсем так. В последних версиях JavaFX (ветка 1.2) появился набор контролов из пакета javafx.scene.control.* - http://weblogs.java.net/blog/2009/06/02/ui...trols-javafx-12 Их конечно немного, но, возможно, пакет будет пополняться новыми. Выглядят достаточно симпатично. Это сообщение отредактировал(а) Amp - 28.1.2010, 18:46 |
|||
|
||||
| chaos |
|
||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 5 Всего: 44 |
те же яйца...
ну зря Вы так согласен
щас точно ответить не могу, но 1. Вы же можете в QGraphicsScene добавить QWidget - можете. 2. Сейчас точно сказать не могу, тк не знаю, но через часок попробую чего-нить экспортировать ЗЫ пиво с рыбой пью |
||||
|
|||||
| chaos |
|
||||||||||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 5 Всего: 44 |
Здаюся пока:
main.cpp
qtbutton.hpp
qtbutton.cpp
при запуске получаю: ASSERT: "!d->isWidget" in file kernel\qobject.cpp, line 1964 Добавлено через 7 минут и 45 секунд
тож так думаю. у меня как раз большой проект под мобильные устройства и заказчик "писил кипятком" когда увидел наброски на qml |
||||||||||||
|
|||||||||||||
| Sovereign |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 7.11.2006 Репутация: 1 Всего: 4 |
я вот не пойму к чему эти вещи как qml, тот же xaml или как он там в дотнете. Когда-то давным давно флешем занимался, ну и пришлось делать для курсовой приложение типа графики зависимостей, карты распределений, так там главное было красоту навести, чтоб все бегало светилось и мигало, и презентация главное, а в повседненвной жизни главное чтоб прога работала и все, остальное нафиг. Да, флеш и Qt и близко не лежали, но тут что-то похожее на ключевые кадры (State Machine) все эти переходы цвета, яркости, прозрачности, местоположения и чего только можно придумать (Qt Animations) тогда (года 4 назад) всю эту красоту хотелось чтоб без flash player'a работало, сейчас не знаю, наигрался, надоело. И кстати, готовых графических элементов в одну тему не будет я так думаю, так что придется все самому, эт вроде как минус, а если возможно будет создать как во флеше не парясь произвольные элементы, было бы не плохо, а так лишь искоса наблюдаю что же родится... время покажет. Хотя сюда по роликам с ютюба мини игрушки ничего так клепают, но не думаю что это предел мечтаний каждого
ps. сорри за поток сознания =) Это сообщение отредактировал(а) Sovereign - 28.1.2010, 20:52 |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 5 Всего: 44 |
ребят, еще раз повторяю, качните бинарники qml и declarative ui
позапускайте примеры из папки demo & examples. Посмотрите результат и сколько нужно сделать что добиться такого. ИМХО очень очень и очень полезнаю штука: 1. без нее(а так же animation api + state machine) было очень тяжко. 2. для мобильных платформ само то 3. ..... |
|||
|
||||
| Amp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 7 Всего: 17 |
Я вот гляжу на http://qt.nokia.com/doc/qml-snapshot/qmlelements.html, в раздел "Basic Visual Items" - там как будто толпа котов наплакала. Как мне нарисовать эллипс или окружность (я уже не говорю о дугах)?
P.S. Для сравнения можете посмотреть в содержимое пакета javafx.scene.shape у JavaFX. |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Я подозреваю, что сначала им придется сделать толпу примитивов и базовых контролов, после чего им придется начать разработку аналога Macromedia Flash...
|
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 4 Всего: 121 |
Советую почитать. Работаем с моделями в QML
Добавлено через 2 минуты и 25 секунд А виджеты, вроде, можно через QGraphicsProxyWidget добавлять. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Ничего нового я там не увидел, кроме интересной ссылки где Qt работает на embedded системе, в ТВ декодере с 30Мб ОЗУ и процессором 200МГц, довольно впечатляюще: http://www.smlabs.net/client.html
Если посмотреть на исходник кнопки button.qml (из блога), то можно увидеть сколько придется ручками поработать, чтобы такую сделать. А ведь кнопка это всего один элемент приложения. Там нет QProgressBar, QDockWidget, QSubWindow, QSlider, QComboBox, QLineEdit, QSpinBox, QDateEdit и т.д. Т.е. кто-то сначала должен это всё реализовать, причем с полным функционалом, а если еще сможет реализовать технологию смены стилей без переписывания элементов, то вообще замечательно. Т.е. захотел сделать весь интерфейс белым - пожалста, захотел черным - не вопрос. Думаю нет проблем это сделать с одной кнопкой, но если у тебя целая библиотека элементов и все используются...
Хотелось бы пример на javascript (qml), т.е. полностью без использования C++. Связка QML + QMLViewer. |
|||
|
||||
| SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Просто для сравнения, это список шейпов из JavaFx:
А это из QML
Но, тут в принципе все можно выкинуть кроме Item и Rectangle. Первый что-то вроде невидимого виджета, который группирует прямоугольники, а второй - единственный шейп. Возможно дальше будет лучше. Хотя уже сейчас я смотрю народ неплохие вещи придумывает. |
||||
|
|||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 4 Всего: 121 |
SABROG, это ж бета, какие тут могут быть претензии?)
Вот сегодня я читал про клиент для vkontakte без единой строки на С++, только JS и QML. И с кнопочками разными, полями ввода, там всё ок Плюс советую посмотреть examples. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Да это так, больше для себя. Просто думал подожду пока релиз выйдет, и правильно думал.
Почитал и я этот блог. Всё что я могу сказать, так это то, что это очередной демо-клон. Практически ничего нового я тут не увидел. Всё тот же черный интерфейс с IPhone-style кнопками. Даже background не удосужились поменять, содрали откуда-то, не помню уже. Всё тот же список с иконками как в демке flicker. Ну и используется весь доступный арсенал из "Basic Visual Items". Фантазии не видно. В то время как в репозитории примеров kinetic declarative уже есть дополнительные графические элементы типа progressbar'a, tabwidget'a. --- Упс... ![]() Это сообщение отредактировал(а) SABROG - 1.2.2010, 15:39 |
|||
|
||||
| Sovereign |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 7.11.2006 Репутация: 1 Всего: 4 |
а впринципе то svg есть, встроенный скрипт тоже, остается только визуальный редактор svg и вуаля... |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 5 Всего: 44 |
||||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Я вот с какими трудностями столкнулся. Градиенты только вертикальные, в документации говорится - переворачивайте rect, чтобы получить горизонтальные. Если последовать их совету, то начинаются последствия. Height теперь у нас width, widht теперь height, а MouseRegion теперь возвращает внутренние координаты курсора мыши. Поднимая курсор вверх - Y координаты курсора растет, вместого того, чтобы падать, двигаем курсор вправо (по X), координата мыши Y - растет, что уже менее страшно. Я подумал и решил прибегнуть к такому ходу, создать rect, а в него впихнуть перевернутый rect с градиентом, в самом конце блока родительского rect'a создается MouseRegion, который накладывается поверх ребенка (кто последний объявлен тот на самом верху по Z), в итоге все координаты приходят нормально. Но, как например локальные координаты мыши перевести в глобальные? Как получать глобальные x,y мыши, когда происходит dragging по сцене? Я таких методов не нашел. Пока есть мысль ловить onX/YChanged, брать top left координату итема и прибавлять локальные координаты курсора на ректе.
--- Всё-таки проблема осталась. Я не могу найти способа растянуть дочерний рект на всю область родителя, после того как сделал ребенку rotate на 90 градусов. Не авторесайзится, а тупо вылазит за пределы. Это сообщение отредактировал(а) SABROG - 2.2.2010, 00:20 |
|||
|
||||
| revers |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 28.1.2010 Репутация: нет Всего: нет |
По умолчанию origin {x;y} у Rotation - (0;0), поэтому и вылазит. С мэпингом координат тоже не могу разобраться. Пытался копать в сторону QGraphicsWidget, засунутого в GraphicsObjectContainer. Вроде как у QGraphicsWidget должны быть функции mapTo*(), mapFrom*(), но что-то не выходит... |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Также пытался найти способ сменить курсор у мыши средствами QML. Естественно не нашел. Думаю его и не будет, т.к. QML больше ориентирован на мобильники о чем говорит обилие скинов в qmlviewer.
Вообще есть ли какой-нибудь способ заставить родителя "поглощать" ребенка также как это делают обычные виджеты, т.е. не рисовать его полностью на экране, если он вылазит за пределы предка? --- Еще одну особенность обнаружил. Свойство visible работает только один раз - при создании итема. Если менять его в процессе работы программы, то ничего не происходит. Свойство opacity:0 вырубает встроенный MouseRegion, поэтому на элементе с 0 прозрачностью не срабатывают onEnter и onExit. --- Еще одна вещь. При свойстве hoverEnabled в метод onPositionChanged приходит событие даже когда мышь не двигалась, а была нажата клавиша (clicked). Это сообщение отредактировал(а) SABROG - 2.2.2010, 14:50 |
|||
|
||||
| revers |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 28.1.2010 Репутация: нет Всего: нет |
Ставь свойство clip в true.
В этом коде работает как надо: мигает по таймеру.
Можно ставить 0.001, вроде не заметно. |
||||||||
|
|||||||||
| SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Твой пример у меня работает нормально. Вставляю в те же обработчики у себя - ничего не работает. Меняю visible на opacity - все работает. Мистика какая-то.
--- Похоже нашел проблему, если убрать эффект, то всё работает:
Это сообщение отредактировал(а) SABROG - 2.2.2010, 18:12 |
||||
|
|||||
| revers |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 28.1.2010 Репутация: нет Всего: нет |
Можно не убирать, а кое-что добавить, но получится явно костыль.
В слот onClicked mrWidget'а добавить
где dsEffect - DropShadow |
|||
|
||||
| SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Тут какая-то проблема с перерисовкой получается, т.к. если рект подвигать, то всё отрисовывается. К сожалению я не нашел таких методов как update()/repaint(). Багрепорт отправил троллям. |
||||
|
|||||
| revers |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 28.1.2010 Репутация: нет Всего: нет |
Эм... не понял. В чем проблема-то? |
|||
|
||||
| SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
В том, что при DropShadow эффекте рект перестает перерисовываться, а изменение свойства visible перерисовку не вызывает. |
||||
|
|||||
| revers |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 28.1.2010 Репутация: нет Всего: нет |
Чуток переделал твой код. По клику меняется visible. У меня все прекрасно перерисовывается. Кстати версия декларэйтива у меня из мастер ветки.
|
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Может кто видел, есть ли такая возможность присвоить геометрию одного rect'a другому, чтобы не приходилось писать портянки?
В Qt это решалось манипуляциями c QRect'ом. |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Есть такая простая конструкция:
Каким образом из ECMAScript/QML скрипт достучаться до ребенка типа "Mamka.Rebenok.width" <- такая конструкция не работает. |
|||
|
||||
| revers |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 28.1.2010 Репутация: нет Всего: нет |
Из документации:
Так что просто Rebenok.width. |
|||
|
||||
| SABROG |
|
||||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Т.е. ты хочешь сказать, что я не могу создать массив комплексных ректов, которые будут содержать внутри ректы с одним и тем же ID'шником? Предположим я создал крутую кнопку и хочу распихать по интерфейсу, а внутри каждой есть элемент с одним именем, как же мне обращаться к ним тогда? Конструкция
Как бы работает за исключением таких вещей, что я не могу вывести в консоль id элемента или обратиться к нему например так "Mama.children['Rebenok'].x" |
||||||
|
|||||||
| revers |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 28.1.2010 Репутация: нет Всего: нет |
Можно добавить к кнопке свойство содержащее уникальное имя. Все кнопки хранить в массиве, выбирать нужный поиском. Если доступ необходим не ко всему дочернему объекту а только к некоторым свойствам, наверно лучше делать так: Наша крутая кнопка, сохраненная в Button.qml:
Ключевой момент - собственное свойство главного предка - text, значение которого исп-ся в btnText. Можно еще "property alias text: btnText.text". В главном файле:
|
||||||
|
|||||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Такую цитату в документации обнаружил.
Если я все правильно перевел, то получается, что основные свойства компонента доступны пользователю для изменения. Если же мы заводим свойства, которые предназначены только для внутреннего пользователя, то надо делать еще одно вложение (Item/Rectangle), а уже из него через alias "экспортировать" свойства, которые мы хотим, чтобы были доступны внешнему пользователю и изменение которых не повлечет неприятных последствий. |
|||
|
||||
| revers |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 28.1.2010 Репутация: нет Всего: нет |
Вчера в документации появилась информация о типах pos, size и rect. Пока реализован только pos. Так что ждем. |
||||
|
|||||
| SABROG |
|
||||||||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Вроде как можно использовать эти типы:
Но я не знаю как Qt.rect одной строкой присвоить элементу. Надо попробовать такой вариант:
--- Не, не работает. К тому же я вспомнил, что есть еще и Z. --- Пробую делать компонент, положил файлик qmldir с номерами версий компонентов. Далее пытаюсь загрузить namespace с учетом версии:
И не получается. Пишет, что не может найти "MyNamespace/myComponent". Если убрать версию 0.0, то находит. Тогда какой смысл прописывать версии в файле qmldir, если он не работает? --- Не работает переопределение на width и height, при этом на x и y работает:
Это сообщение отредактировал(а) SABROG - 5.2.2010, 00:14 |
||||||||||
|
|||||||||||
| revers |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 28.1.2010 Репутация: нет Всего: нет |
Работает только с теми, у кого есть свойство geometry. К примеру:
--------- Еще один капец. Частицы должны притягиваться к grav1. Но ведут себя мягко говоря странно.
Это сообщение отредактировал(а) revers - 5.2.2010, 06:10 |
||||||
|
|||||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Такое в консоль сыпется
|
|||
|
||||
| revers |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 28.1.2010 Репутация: нет Всего: нет |
Картинку можно взять в %QTSRC%/examples/declarative/animations/images/star.png
Остальные варнинги на работу не влияют. |
|||
|
||||
| revers |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 28.1.2010 Репутация: нет Всего: нет |
Сегодня наконец то дошли руки и до этого. Получилось вставить QPushButton в Rectangle. pushbuttonextension.h:
pushbuttonextension.cpp;
pushbuttonextension.h и pushbuttonextension.cpp достаточно включить в HEADERS и SOURCES соответственно. main.qml
|
||||||||
|
|||||||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, 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. |