Russian Qt Forum
Октября 08, 2025, 13:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1]
1  Разное / Говорилка / Re: У кого приходили мысли - сложно ли сделать свой фреймворк типа Qt? : Сентября 21, 2025, 10:51
Коллега - провокатор)) И все ж...
Зачем класть 7 лет (Веселый) на разработку того, что уже есть? Форкнуть, к примеру, 5.15, выкинуть лишнее, добавить недостающее, послать фиников на ..., изменить лицензию на "всем всё разрешено", и все дела.
Понимаю, тем, кто до сих пор работает на забугор, это не понравится, но у них и так все хорошо. А все остальные будут довольны.


В общем я сейчас так и поступаю, но на  Qt4. Это к вопросу, что в  Qt 5,6 дофига чего добавлено. На самом деле я до сих пор не вижу необходимости переходить на  Qt5.

Но посылать фиников я тоже никуда не хочу, просто если так складывается, что развитием  Qt Sql я занимаюсь индивидуально, там модель данных уже полностью своя и представление свое (отрисовка) , то может уже пора и все исходники переработать? Чего нам терять то?

Правда времени  сейчас не хватает, т.к. на том же Qt4 пишу десктопы и довольно успешно, но заяб..ют разговоры, что  я кому-то должен исходники открывать (релиз собираю исключительно статически).
2  Qt / Базы данных / Re: QSqlTableModel не добавляет данные если переопределить flags : Сентября 20, 2025, 16:49
такие вещи надо с помощью отладчика по сырцам решать, 5 минут и все станет очевидно. бага там нет
3  Разное / Говорилка / У кого приходили мысли - сложно ли сделать свой фреймворк типа 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 и т.д.





4  Qt / Базы данных / Re: QSqlRelationalTableModel и SELECT : Сентября 20, 2025, 13:18
Или как у нас QpSqlTableModel скачать. Там и внешние связи по фен Шую реализованы и CRUD нормальный.
5  Qt / Базы данных / Re: QSqlRelationalTableModel и SELECT : Сентября 20, 2025, 13:16
Наследоваться от QSqlRelationalTableModel и переопределить selectStatement например.
6  Qt / Пользовательский интерфейс (GUI) / Re: QProgressBar работает медленно, или мне показалось : Сентября 19, 2025, 12:09
QProgressBar тормозит при setValue (после выхода именно из QProgressBar::paintEvent) 200-300ms

решается только созданием диалога с нашим ProgressBarDlg БЕЗ парента !!

Это работает нормально, и к тому же стили (setStyleSheet) начинают действовать нормально для QProgressBar

и центрирование по середине тоже начинает работать нормально

QProgressBar использует какую-то анимацию, которую не отключить, но причина не в этом, а в том, что есть какая-то связь с родителем, которую пока не раскрутил
7  Qt / Model-View (MV) / Re: Обновить relationModel для QSqlRelationalTableModel : Февраля 03, 2023, 19:00
Состоялось интересное развитие классов QSqlTableModel и QTableView на старом добром Qt 4.8.1 в виде новых классов типа PblSqlRelationalTableModel и PblTableView. Там есть и готовый класс PblTableDlg, который включает полноценный функционал управления таблицей: вставка , удаление, копирование строки, поиск, отбор по значению и самое приятное внешние связи с другими таблицами для подстановки текстовых значений вместо  ID реализованы внутри классов и работают автоматически.
Проект открытый свободный, развивается уже не один год, выложен на гитхабе

https://github.com/PavelDorofeev/Fork-Sql-Qt-4.8.1--SQLite-3--relations--calc-fields
8  Qt / Model-View (MV) / Re: QSqlRelationalTableModel, проблемы с фильтром : Февраля 03, 2023, 18:57
Хочу поделится, мы сделали свой вариант QSqlRelationalTableModel и заодно к нему новое развитие QTableView, и получилась готовая таблица PblTableDlg, у которой реализованы внешние связи, комбобоксы, чекбоксы, основные кнопки, поиск и чего там уже только нет... Настраивается все элементарно.

https://github.com/PavelDorofeev/Fork-Sql-Qt-4.8.1--SQLite-3--relations--calc-fields
9  Qt / Model-View (MV) / Re: Как в QSqlRelationalTableModel получить первичный индекс ? : Февраля 03, 2023, 18:55
Хочу поделится, мы сделали свой вариант QSqlRelationalTableModel и заодно к нему новое развитие QTableView, и получилась готовая таблица PblTableDlg, у которой реализованы внешние связи, комбобоксы, чекбоксы, основные кнопки, поиск и чего там уже только нет... Настраивается все элементарно.

https://kkmspb.ru/development/Qt/database-sql/Fork-Sql/

https://github.com/PavelDorofeev/Fork-Sql-Qt-4.8.1--SQLite-3--relations--calc-fields

p@kkmspb.ru Павел

10  Qt / Model-View (MV) / Re: Как в QSqlRelationalTableModel получить первичный индекс ? : Мая 22, 2022, 18:15
Хоть вопрос и старый, но в поиске выдается актуальном , 2022г.

Для Qt 4.8.1 давече решал проблему с  id значением поля внешней связи через лайфхак исходников qt и вроде все работает как надо:

QString QSqlRelationalTableModel::selectStatement() const
......
            //!!! my
            fList.append(QLatin1String(", "));
            fList.append(relTableAlias);
            fList.append(QLatin1String("."));
            fList.append(relation.indexColumn());
            fList.append(QLatin1String(" as "));
            fList.append(relation.tableName());
            fList.append(QLatin1String("_"));
            fList.append(relation.indexColumn());

Думаю идея понятна.
Страниц: [1]

Страница сгенерирована за 0.028 секунд. Запросов: 21.