Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Дмитрий Коняев ([info]dimchansky)
@ 2005-06-11 23:22:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Trolltech Qt/Windows
Решил посмотреть в сторону кроссплатформенного GUI ну и вообще на что-то более высокого уровня, чем MFC. Посмотрел на win32gui. Под рукой не было VC 7.1, попробовал на Dev-Cpp (MinGW) - понял, что идея неплохая всё "зашаблонить" и по максимуму уйти от сообщений системы, но с этим детищем нужно немало разбираться, а наработок под него маловато. Кроме того на кроссплатформенность у него пока только претензии, реально он пока только под windows заточен. :) Потом есть пару претензий к коду. Блуждая по его исходникам, наткнулся на win32gui\detail\ts\critical_section.hpp у которого критическая секция в конструкторе инициализировалась, а деструктор отсутствовал напрочь. Этого я вообще не понял. Это что, недокументированая возможность забывать деинициализировать критическую секцию или я не понял всей глубины? Вообщем, сразу у меня возникло слишком много вопросов и претензий, решил, что тратить время на него рано и неоправдано дорого.
Полазив по форуму rsdn.ru, пришёл к мнению, что Qt от Trolltech совсем неплох. Тут интересная идея с сигналами и слотами. На счёт этого на форуме rsdn.ru интересное сообщение, на которое стоит помедитировать:
Воспринимай тесно связанные группы сигналов какого-либо класса Qt (напр. QListBox) как интерфейсы стратегий. Класс формы (напр. QDialog) агрегирует QListBox по значению, и реализует некоторые из этих интерфейсов (объявляя соответствующие наборы защищенных виртуальных абстрактных слотов), параметризуя ими QListBox в своем конструкторе. Таким образом мы получаем абстрактный класс, трансформирующий модель "агрегирование + рассылка сообщений через механизм signal/slot" на хорошо знакомую "простое наследование + виртуальные функции". Теперь привычно?
А вот если у издателя имеется несколько подписчиков, то тут мы уже имеем дело с сервером и его клиентами. Но такие вещи в Qt Designer не делаются.
Поставил себе Qt 3.3.2 для windows enterprise версию. На сайте есть версия и повыше, но evaluation. Пока не ставил её. Вообще говоря, основной минус цена. Enterprise версия стоит нереально дорого для коммерческого использования на одного девелопера, professional - не меньше.
Под линукс правда для некоммерческого использования третья версия под GPL есть. Обещали, что четвёртая верися под Windows будет тоже под GPL для некоммерческого использования. Кстати, KDE написан с использованием Qt. :) Skype, кстати, тоже.
Если кто из программеров читает и в теме, т.е. может посоветовать ресурсы по теме, а особенно если есть запасённые лекарства от жадности для последней версии под Windows буду очень признателен.
Собрал по туториалу конвертер длин - остался очень доволен. :)

З.Ы.:
А статусбар у приложения вещь не кроссплатформенная? Т.е. на MacOS, на Иксах она есть или нету? В стандартных виджетах Qt статусбара не нашёл.


(Читать комментарии) - (Добавить комментарий)


[info]dimchansky@lj
2005-06-12 04:31 (ссылка)
Если нужно одно инженерное решение для разных платформ, при этом, чтобы оно работало максимально быстро (используется масса математических алгоритмов), то лучше C++ не найти. Если понадобится перейти на embedded (а это может быть уже не за горами), то Qt + C++, по-моему, неплохой выбор.
Java и C# возьмут свою часть рынка, но не сметут всё. C++ будет жив по-прежнему, просто хороших специалистов по нему будет меньше.
Кстати, недавно была новость "Создатель C++ уверен в будущем своего языка (http://citforum.ru/news/show.php?id=7526)". :)

(Ответить) (Уровень выше)


(Читать комментарии) -