![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
В общем оппонент №1 - больше информации, все грабли заранее известны, полная обратная совместимость, стабильность, совместимость с Delphi, куча компонентов, бесплатность, возможно работать на уровне Win32 API.
№2 - кроссплатформенность, продуманная архитектура (VCL тож не на коленке писали), так-же радует поддержка свг и юникода. В остальном всё не так радужно, я сомневаюсь что там можно обрабатывать сообщения windows или получить хэндл окна, помимо этого для того чтобы программы выглядели одинаково на всех платформах, контролы рисуются программно, ну и конечно отладчик gdb не способный нормально работать (попробуйте поставить точку останова в конструкторе). |
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Смешные какие-то аргументы против куте
![]() bool QCoreApplication::winEventFilter ( MSG * msg, long * result ) [virtual] WId QWidget::winId () const А в VCL аппаратно? ![]() О да, просто бесспорно ![]() В чём проблема? |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Где? Какой? Ты о чём? 0_о Не аргумент... Если они известны тебе - то это твой плюс... Если тебе не известны грабли Qt - то это твоя проблема... К оппоненту это никак не относится... Гхм... А в Qt раз в неделю нужно рефакторить код, дабы совместимость поддерживать? ![]() Покажи мне нестабильный код на MinGW/Qt и я покажу тебе нестабильный код для билдера/VCL ![]() У Qt совместимость с туевой хучей языков. Аналогичное можно сказать о Qt. Аналогичное можно сказать о Qt. Камушек в огород MinGW? Ты хочешь сказать что с MinGW нельзя работать на уровне W32API? ![]()
Qt как раз таки славится нативной отрисовкой. Если ты явно не указываешь какой стиль использовать, то будет выбран стиль по умолчанию(т.е. нативный для данной платформы). Мы этот вопрос уже вроде обсуждали ![]() Ты не поверишь - пробовал и не раз ![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 2 Всего: 181 |
Нуу, это ж разве война... Lazin, полней аргументировать надо, и многие детали реализаций знать... а то так не интересно
![]() Хотя какие там могут быть аргументы против Qt... ![]() -------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Да это то изначально было понятно... Просто весело будет смотреть, как билдеристы будут потихонику о**евать от того как много кнопок они нажимают и как мало от этого получают ![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 2 Всего: 181 |
Вообще можно было бы очень даже интересно поспорить, сравнить дизайн VCL и Qt, их достоинства, недостатки...
Надо только гуру VCL неплохо знающего Qt в оппоненты ![]() Вообще VCL - довольно хорошая библиотека, только она спроектирована основываясь на возможностях языка Delphi, ну и вообще недостатков хватает, НО достоинства тоже есть, правда мне сейчас ни одного в голову не приходи ![]() Про достоинства Qt довольно часто говорят, дизайн удобный, продуманость, кроссплатформеность итд., а вот про недостатки (настоящие недостатки!) я что-то не припомню (а может их просто очень мало ![]() Так вот, предлагаю за отсутствием противников Qt (даже автора что-то не видно...), ну и так сказать для привлечения интереса ![]() Т.е. у кого есть к ней притензии, выкладывайте, может найдём решения для них, или багрепорт напишем, в споре рождается истина ![]() Мне не нравится реализация поддержки локалей в Qt, т.е. класса QLocale & Co. Он выглядит слегка недоделаным, например я не нашел способа отформатировать вывод денег с денежной единицей, хотя отформатировать просто число можно. Это неудобно, приходится дополнительно использовать стандартные способы. Это первое что прошло в голову, вспомню еще - напишу ![]() -------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Попинаю VCL:
1. Есть ли там layout'ы? 2. А вы ими пользуетесь? 3. А почему ими не пользуется билдеровский дизайнер(сводя на нет преимущества лэйаутов, если они есть, конечно)? nickless, да, поддержки currency к сожалению нет, хотя... Не такая уж это большая проблема ![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 59 |
Я же говорил, ерунда получится. Нужны люди, которые делали приличные проекты и в том и в другом.
А так кисло получается. А Вы снизте уровень апломба и начните с недостатков С++Builder и предлагаемой им парадигмы визуального программирования, выполненной на основе принципов PME ( properties, methods, events ) Нижеследующие известные реально существующие недостатки можете сразу пропустить ![]() 1. Наличие VCL-классов, поведенияе которых в силу своего происходения в отдельных случаях отличается от стандарта. Ради справедливости надо отметить, что эти отклонения описаны в документации в соответствующем разделе хелпа. 2. Снижение попоулярности С++Builder вследствие идиотской политики топ-менеджеров фирмы Borland. Можно также сразу пропустить заблуждения о вопиющей несовместимости С++Builder со стандартом. Я правда с 2004 года на С++ Builder не пишу, но постаюсь ответить. -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
1. А нах они там, вообще ненавижу layoutы, они не интуитивны, в VCL для этого есть свойства Anchors и Align - это намного удобней чем гадать как твоя форма будет выглядеть в итоге. 2. Их нет в VCL, как ими пользоваться?
Ну так если вы так напишите то кроссплатформенность коту под хвост. Когда я начал изучать Qt, я обнаружил что примеры для Qt3 не работают с Qt4. ![]() Добавлено через 2 минуты и 9 секунд Аты клавиатурой для написания программ совсем не пользуишся? ![]() ![]() |
|||
|
||||
MAKCim |
|
||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
что конкретно показать?
а что, Builder позволяет кроссплатформенно обрабатывать сообщения Windows? ![]()
имелась в виду, думаю, мышка -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||
|
|||||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
как использовать mingw + eclpse + gdb, чтобы это всё работало стабильно. К mingw претензий у меня нет, но вот gdb у меня работал нестабильно, версий 6.6 и более ранних. Кстати ктонибудь сдесь кроме Vyacheslav использовал ВЦЛ в серьезном проекте? Это я о том что в принципе по организации, все эти библиотеки не сильно друг от друга отличаются. Если к примеру нужно что-нибудь рисовать на форме (виджете, окне) то последовательность действий везде одна и та-же: VCL ловим событие OnPaint, получаем Canvas компонента (формы), и рисуем.. Qt ловим событие - аналог OnPaint? получаем QPainter рисуем... wxWidgets в обработчике OnPaint получаем wxDC... вынь32 api по событию WM_PAINT получаем HDC......... единственное, что серьезно отличает Qt - это сигналы-слоты, в остальном тоже самое ![]() |
|||
|
||||
archimed7592 |
|
||||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
PME является основой и Qt в том числе... Насчёт недостатков - что насчёт лэйаутов? Pixel hunting по определению не может быть удобнее layout'ов. Пусть даже будут предоставлены костыли, дабы уменьшить количество почти ручных вычислений координат. Попробуй динамически сконструировать очень сложную форму - поймёшь о чём я говорю.
Уважаемый, может быть мы обойдёмся без настолько смешных аргументов?
Знаешь сколько существовала Qt-3, пока не появилась Qt-4? За такой период любая система должна пересматриваться, рефайниться. Во-первых, есть целый ман по протированию qt3-qt4. Во-вторых - такова политика компании(улучшать дизайн, но оставлять лазейки для совместимости) и это, ИМХО, самая правильная политика.
http://forum.vingrad.ru/index.php?showtopi...t&p=1279508 Добавлено через 2 минуты и 42 секунды Да уж... вынь32 api от Qt отличает только отсутствие сигнало-слотов... Тогда спорить, думаю, бессмысленно ![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||||
|
|||||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 59 |
Ну вообще то я - лентяй. А лень как известно двигатель прогресса. Меня то и С++ в свое время привлек тем, что в нем можно лаконично писать код. С++Builder продолжил эту славную традицию посредством визуального программированя. Умело пользуясь предоставленными компонентами можно создать относительно сложный пользовательский интерфейс не написав ни строчки кода. С учетом того, что разработка интерфейса может в отдельных проекта занимать до 70% рабочего времени, С++Builder любезно берет этот тяжкий труд на себя, оставляя мне больше времени на бизнес логику.
Например программку, которая обеспечивает манипулции со списками межуду двух листбоксов ( копирование или перемещение из одного в другой и обратно, удаление ) я могу создать вообще не написав ни строчки кода ( вообще у меня мания на этот счет - писать как можно меньше) Весь функционал будет создан только средствами дизайна. При этом программа сможет перемещать, копировать выделенные данные из одного списка в другой или удалять их по нажатию соответствующей кнопки, а также следить за состоянием этих кнопок и управлять их доступностью, исходя из конкретной ситуации. О layout'ах. Да есть такое упущения: разработчики не предусмотрели "стандартного" менеджера. Но кто мешает создать свой менеджер. Кстати , библиотеки с компонетами от сторонних разрабочиков очень часто предоставляют такие менеджеры для своих компонетов (DEV Express, например) Что касается форм, то я обычно выбирад другой путь. Разработка проекта начиналась обычно с создания своих компонентов и базовых форм со своими нужными мне проперятями и событиями, шаблонов проектов модулей, которые интегрировались в IDE и использовались как стандарные формы. Например в одном из проектов , для создания нового плагина достаточно было открыть соответствующий шаблон проекта, заполнить в соответствии с инструкцией требуемые проперти, в заданном месте написать реализацию функционала. Там же в IDE после тестирования и готовности модуля мог запустить его на инсталяцию ( пунктик был в меню): и соответствующий функционал, встроенный в IDE пересобирал заланный модуль, зачитывал номер версии и билда, регристрировал(обновлял) этот модуль и версию в БД и в нее же загружал исполняемый модуль. После этой процедуры обновленный модуль становился доступным пользователям. Программирование напоминало больше технологический процесс, нежели творчество. А как Вам например компонент-оболочка вокруг RASDial, написанный мною, который мог осуществлять дозвон и соединение прямо в дизайне или хотя бы те же стандпартные компоненты позволяющие подключаться к БД и выводить содержимое также в дизайне, еще до начала, собственно , самого программирования? Ну и пару слов о кроссплатформенности. С++Builder 6 предоставлял таку возможность. Наряду с узкозаточенной VCL, в комплект входила и другая визуальная библиотека CLX. Создав приложение на CLX, я мог перенести код на Linux и спомощью C++ Kylix 3 собрать его там. Это достигалось тем, что CLX, которая обеспечиавоа прицип RAD, являлась настройкой над ... Qt ![]() С одной стороны можносделать вывод, что без Qt никуда, а с другой - что возможности предоставляемые QT на уровень RAD не тянут и она по своей сути остается ресурсоориентированной библиотекой, так же как MFC, wxWIndows и пр. Это был весьма многообещающий проект, но к сожалению во-первых похоже не сошлись по цене с разработчиком, а во-вторых для меня он потерял свою прелесть из-за идиотского подхода Borland : они вокруг QT соззали врапер из дельфийскизх CLX классов и эти классы предложили использовать в C++ Kylix/C++Builder. В результате на выходе получился бутерброд C++(QT)->Delphi(CLX)->C++(приложения ). Соответсвенно получили итог: дельфийцам межплатформенность не нужна - у них уже есть воя ниша. Те, кто пишет на С++Builder - подход показался черезчур экзотичным. CLX и Kylix канули в лету -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
Ну вообще в VCL используется тот-же принцип что и в winforms, у каждого компонента есть свойства Anchors и Allign, которые позволяют очень удобно группировать контролы на форме, и позволяет, в частности, избежать использования вложенных layout-ов. Но если очень этого хочется, в BDS2006 добавили новые стандартные компоненты FlowPanel и GridPanel, делающие то-же что и Layout-ы.
Не знаю, есть ли аналог в Qt, но в VCL имеется оч. удобная весчь - TFrame, с помощью которой можно очень сложный динамический интерфейс сделать, частично, в дизайнере. Помимо этого можно как угодно переделать уже готовую форму, даже если ее написал не ты, и нет исходников. Можно, к примеру, добавить свои элементы управления на стандартный диалог выбора цвета, или удалить оттуда что-нибудь. Только жаль что для этого уже придется программировать ![]()
Я совсем не это имел ввиду, а то что удобный дизайн, это удел не только Qt. |
||||
|
|||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 2 Всего: 162 |
||||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |