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

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 статусбара не нашёл.


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

Re: wxWidgets
(Анонимно)
2005-06-13 09:38 (ссылка)
Ну запускаешь приложение, в параметре пишешь, например, -style=sgi и все контролы в стиле SGI.

Такого в wxWidgets сделать нельзя по объективным причинам. Он не сам рисует кнопки, он просит это сделать ОС.

В Qt, насколько я пока разобрался, пишешь всё, что должно переводиться в виде tr("Find")

В gettext тоже самое, только там принято называть функцию для перевода "_": printf(_("Find")).

--
Андрей

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


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