|
obiz
|
|
Всестороннее сравнение WPF против Qt+QML31.08.2012, 01:50. Показов 15295. Ответов 42
Метки нет (Все метки)
Всем привет.
Сабж. Очень прошу поучаствовать всех кто разбирается в обоих технологиях. Хочется собрать полный список весомых отличий в теории и практике применения как Qt+QML так и WPF для создания обьёмных десктопных приложений. Плюсы и минусы того идругого Первое что самому приходит в голову: WPF +++ Проще найти разработчиков Большое количество готовых контролов Кастомные контролы есть в опенсорсе и в продаже Дружественный к Win системам --- Требует фрейморк Win-only MS может в любой момент забросить как и сильверлайт и многое другое QML +++ Декларативное описание интерфеса (полезно для скинов) мультиплатформа --- Изначально задуман не для десктопа отсюда недостаток элементов управления сама QT ходит по рукам и не известно будет ли развиваться и поддерживаться Приглашаю к обсуждению! |
|
| 31.08.2012, 01:50 | |
|
Ответы с готовыми решениями:
42
Подсветка QML элементов QML-ного плагина в QtCreator в случае нахождения QML файлов плагина в ресурсах!
Как подключить QML-файл в C++ по моде, а также получить ссылки на QML-элементы в C++ |
|
~ Эврика! ~
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
||||||
| 09.06.2013, 18:58 | ||||||
|
0
|
||||||
|
|
||||
| 10.06.2013, 07:16 | ||||
|
Внутри объекта реагировать, как правило, не нужно. События мышки и клавиатуры должны торчать наружу, да. Инкапсуляция тут не при чём. Инкапсуляция - это скрытие того, о чём клиент знать не должен. При чем скрывать надо ваще и капитально, так принято. В Qt же вынос событий в методы заместо сигналов плохо скрывает события - он реакцию на события НЕУДОБНОЙ, а не НЕВОЗМОЖНОЙ. Если уж говорить о вставке посредника, то, скорее, это можно сказать именно о Qt - в роли посредника выступает класс-наследник. Добавлено через 11 часов 55 минут Вдогонку. OhMyGodSoLong, вернёмся к вашему примеру - кнопка с дыркой. Видимо, вы настолько привыкли наследовать, что уже машинально в качестве примера привели ситуацию, когда это бесспорно оправдано. Между тем, наследование - очень "тяжелое" средство, и, если оно требуется, это значит, нам не хватает "легких" средств - того, что торчит наружу. Дырка на контроле - это очень специфичное поведение. Настолько, что ради него не грех и наследование применить. А вот реакция на мышку - совсем наоборот, поведение более чем обычное (для gui-шного контрола, разумеется). И ради этого обычного действия вынуждать использовать "тяжелую артиллерию" - наследование - хмхм... Ну и область видимости, конечно, тоже имеет значение. Вряд ли нам потребуется обработка клика внутри самого контрола. Его задача - принять клик и передать кому следует. По области видимости обработка всё-таки должна быть вовне.
0
|
||||
|
~ Эврика! ~
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
| 10.06.2013, 09:04 | |
|
Вы так говорите, как будто там игру пишете, не вкладываетесь в ФПС из-за наследования и точно знаете благодаря профайлеру, что это именно наследование виновато.
Есть просто разница: вызовами protected-методов ***Event() передаются низкоуровневые события. Которые "мышка залезла на контрол", "какая-то кнопка мышки нажата", "какая-то кнопка мышки отпущена". Последовательности этих событий собираются контролом в высокоуровневые события вроде "на меня нажали". Первые логично засунуть внутрь самого контрола. Вторые выставить сигналами наружу.
0
|
|
|
|
|||||||||||
| 23.10.2013, 09:45 | |||||||||||
|
Вдогонку. Я просто оставлю это здесь.
Задача - сделать текстовое поле с кнопкой. Как это делается в Qt: (Отсюда http://stackoverflow.com/quest... tton-pyqt4)
А теперь - как это делается в WPF:
При этом в WPF программист сразу видит результат в редакторе.
0
|
|||||||||||
|
|
||||||
| 23.10.2013, 17:17 | ||||||
|
Я просто оставлю это здесь. (QML)
Полноценный текст самодостаточного приложения:
0
|
||||||
|
|
||
| 23.10.2013, 17:32 | ||
|
Как через консоль или по другому собирать и запускать я хз, т.к. В QML не особо силен.
0
|
||
| 23.10.2013, 19:24 | |
|
ну да, мы и не деваемся :)
но давай остановимся. ты в посте 26 привел аргумент в ответ на кусок xaml-кода, показав, что вот, тут все что нужно для приложения с кнопкой. получилось чуть больше, чем этот xaml код, и еще одно отличие: приложение с xaml кодом можно наклацать мышкой, только имя приложения введя (и то, если не устраивает предложенное по умолчанию). а ты свое сомодостаточное полностью ручками слепил (возможно я ошибаюсь, не знаком близко с этой технологией, допускаю, что имеются инструменты). разница имеется.
0
|
|
|
|
||
| 23.10.2013, 19:50 | ||
|
Не проверял, но верю. Завтра проверю, кстати ![]() QML - штука очень бедная по набору тегов. Т.е. аналогичную фишку, но вместо TextArea - менюшку - вы уже не сделаете. Из-за отсутствия менюшки. Потому и делает народ на коленке такие поделки под QML: http://blog.qt.digia.com/blog/... r-desktop/ .
0
|
||
|
|
|||
| 24.10.2013, 08:48 | |||
|
вот видео построения интерфейса мышкой.
Возможно даже реакции на действия пользователя привязать через редактор QML.
0
|
|||
|
|
|||||||
| 24.10.2013, 08:58 | |||||||
0
|
|||||||
|
|
||
| 24.10.2013, 09:21 | ||
|
В общем, ладно. Уже круто, что там таки есть эти элементы. Но, надеюсь, вы ответите на следующий вопрос: - Эта кнопка внутри меню-итема или нет? Я у себя в проекте WPF сделал так: То есть, в основе - стандартный контрол, внутрь засовываю, что хочу. Позволяет ли такое QML?
0
|
||
|
|
||
| 24.10.2013, 09:43 | ||
|
практически - не силен в QML.
0
|
||
| 24.10.2013, 10:22 | |
|
похоже, опять все сводится к тому, что лучше всегда то, что привычнее. чтобы судить объективно, нужно иметь богатый опыт во всем, а на это времени хватить даже теоретически не может, а практически никто не станет осваивать что-то такое же, если его хоть как-то устраивает то, чем он уже владеет и в чем имеет опыт. поэтому тема вполне справедливо находится там, где находится.
0
|
|
| 24.10.2013, 10:22 | |
|
qml - что из себя представляет qml QML вызов другого qml
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|