Russian Qt Forum
Октября 08, 2025, 13:49
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Разное
>
Говорилка
>
У кого приходили мысли - сложно ли сделать свой фреймворк типа Qt?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: У кого приходили мысли - сложно ли сделать свой фреймворк типа Qt? (Прочитано 397 раз)
kkmspb
Новичок
Offline
Сообщений: 10
У кого приходили мысли - сложно ли сделать свой фреймворк типа Qt?
«
:
Сентября 20, 2025, 14:12 »
Я тут новичок, но Qt использую давно и до сих пор сижу на Qt4 , но речь не об этом. В основном кодю десктоп приложения под винду. И все у меня хорошо, на мой взгляд, все меня устраивает. Чего не хватает в Qt развиваю сам, т.е. добавляю новый функционал, в основном в ветке qt/sql.
Но, по мере погружения в исходники Qt (500 классов вроде), часто стал задумываться - а в чем трудность сделать свой фреймворк и почему таких с++.фреймворков по пальцам пересчитать, при чем одной руки?
Хочу изложить, какое у меня сложилось понимание основных моментов, на которые надо сразу обратить внимание. В чем основные моменты базовых классов.
1. Как ни странно это реализация очереди сообщений от операционной системы.
2. Метаобъектная система, реализация своего QObject аналога. Тут же и технология сигнал/слот как следствие, причем межпоптоковый вариант тоже должен быть и как раз через очередь сообщений каждого потока отдельно его надо реализовывать.
3. Как ни странно это общий тип данных по примеру QVariant, чтобы кастовать туда сюда разные типы данных как хочу на основе кастомных метаданных, очень удобная фича.
4. Гуй всемогущий! Реализовать парадигму отрисовки виджетов с применением для этого лейаутов или чего-то подобного.
5. Наконец-то сделать нормальные классы для работы с базами данных, CRUD, внешние связи и.д. Но это уже детали.
6. Конечно сетевой протокол с использование openssl не забываем.
Чего ещё забыл? Ах да, надо лет 7 свободного времени. Но по факту Хаавард Норд на пару с ещё с одним студентом сделали эти примерно 500 классов лет за семь, насколько я знаю. Причем с учётом кроссплатформенности, но я лично ограничился бы для себя виндой пока, хоть это и кощунство.
И наконец я бы разрешил все это добро использовать под лицензией - как хочу так и пользуюсь, хоть в закрытых проектах, хоть в открытых, хоть в коммерческих, хоть в бесплатных, компилировать хоть динамически/ хоть статически.
7. Наверное забыл контейнеры типа QMap, QList и т.д.
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4751
Re: У кого приходили мысли - сложно ли сделать свой фреймворк типа Qt?
«
Ответ #1 :
Сентября 20, 2025, 17:21 »
версия 1.0 (которую видимо за 7 лет и написали) порядочно отличается даже от 4-й. А сколько всего добавили в 5 и 6 уж можно и не говорить.
наверное никому неохота переизобретать колесо с сомнительным выхлопом.
Цитата: kkmspb от Сентября 20, 2025, 14:12
И наконец я бы разрешил все это добро использовать под лицензией - как хочу так и пользуюсь, хоть в закрытых проектах, хоть в открытых, хоть в коммерческих, хоть в бесплатных, компилировать хоть динамически/ хоть статически.
у Qt нет с этим никаких проблем. Или щас опять пойдут байки про «если линковать статически, то надо открывать код приложения»?
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
sergek
Гипер активный житель
Offline
Сообщений: 875
Мы должны приносить пользу людям.
Re: У кого приходили мысли - сложно ли сделать свой фреймворк типа Qt?
«
Ответ #2 :
Сентября 20, 2025, 18:10 »
Коллега - провокатор)) И все ж...
Зачем класть 7 лет (
) на разработку того, что уже есть? Форкнуть, к примеру, 5.15, выкинуть лишнее, добавить недостающее, послать фиников на ..., изменить лицензию на "всем всё разрешено", и все дела.
Понимаю, тем, кто до сих пор работает на забугор, это не понравится, но у них и так все хорошо. А все остальные будут довольны.
«
Последнее редактирование: Сентября 20, 2025, 22:32 от sergek
»
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
kkmspb
Новичок
Offline
Сообщений: 10
Re: У кого приходили мысли - сложно ли сделать свой фреймворк типа Qt?
«
Ответ #3 :
Сентября 21, 2025, 10:51 »
Цитата: sergek от Сентября 20, 2025, 18:10
Коллега - провокатор)) И все ж...
Зачем класть 7 лет (
) на разработку того, что уже есть? Форкнуть, к примеру, 5.15, выкинуть лишнее, добавить недостающее, послать фиников на ..., изменить лицензию на "всем всё разрешено", и все дела.
Понимаю, тем, кто до сих пор работает на забугор, это не понравится, но у них и так все хорошо. А все остальные будут довольны.
В общем я сейчас так и поступаю, но на Qt4. Это к вопросу, что в Qt 5,6 дофига чего добавлено. На самом деле я до сих пор не вижу необходимости переходить на Qt5.
Но посылать фиников я тоже никуда не хочу, просто если так складывается, что развитием Qt Sql я занимаюсь индивидуально, там модель данных уже полностью своя и представление свое (отрисовка) , то может уже пора и все исходники переработать? Чего нам терять то?
Правда времени сейчас не хватает, т.к. на том же Qt4 пишу десктопы и довольно успешно, но заяб..ют разговоры, что я кому-то должен исходники открывать (релиз собираю исключительно статически).
«
Последнее редактирование: Сентября 21, 2025, 10:57 от kkmspb
»
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...