Russian Qt Forum
Май 06, 2024, 18:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 [2] 3 4 ... 13
16  Qt / Общие вопросы / Re: Задание размера уже созданному QImage + эффективное создание QImage в функции : Октябрь 28, 2022, 14:08
В общем, пока плюнул на архитектурную чистоту, возвращаю из функции указатель на созданный объект, удаляю по окончание работы.

Попутно узнал и другие интересные вещи, например, что при программном формировании QImage setPixel() - очень затратный по времени метод. Возможно, таки откажусь от QImage на стадии генерации изображения и буду работать просто с байтовым массивом, а в QImage запихаю уже готовый результат перед записью в файл.
17  Qt / Общие вопросы / Re: Подробная диагностика для QLibrary::load() : Октябрь 28, 2022, 14:01
Ну это "внешний" способ. Хотелось бы надёжную диагностику в Runtime, чтобы при запуске было понятно, кто виноват - программист, тот, кто дистрибутив формировал или вообще кто-то третий. А то, грубо говоря, программа тащит Qt, Qt тащит libpq, libpq тащит libiconv и ещё бог весть что из библиотек, вплоть до Microsoft Redistributable... а исход один, "driver not loaded".

Как там в анекдоте про Папу Римского - несправедливо!

P.S. Приведённый пример с драйверами - всего лишь пример, есть и другие похожие ситуации.
18  Qt / Общие вопросы / Подробная диагностика для QLibrary::load() : Октябрь 13, 2022, 11:03
Добрый день.
Как все знают, QLibrary::load() может не сработать, и в errorString() при этом можно увидеть сообщение "Не найден указанный модуль".
Проблема в том, что в роли "указанного модуля" может выступать не сама загружаемая библиотека, а одна из библиотек, от которых она зависит.
Можно ли как-то расковырять информацию о том, какая именно библиотека второго уровня не найдена?

Я даже готов для этого наковырять платформозависимые костыли для Linux и Windows. Если это поможет, конечно.
Куда копать?
19  Qt / Общие вопросы / Задание размера уже созданному QImage + эффективное создание QImage в функции : Сентябрь 25, 2022, 17:19
Добрый день.
Я пишу функцию (точнее, конечно, метод класса), программно рисующую в объект QImage (больших размеров, например, 6240x4160 пикселей). Объект должен быть потом доступен извне (для сохранения в файл и не только).
Думаю, как лучше оформить эту функцию.

Первый вариант - создать объект QImage внутри функции и вернуть его. Могу я в этом случае полагаться на эффективность механизма COW, ведь формально говоря, внутри функции будет один объект, а снаружи другой?

Второй вариант - создать объект извне и передать в функцию неконстантную ссылку на него. Тогда вопрос сводится к тому, смогу ли я внутри функции поменять размеры уже сконструированному изображению? Я вот конструктор с width и height вижу, а отдельной функции изменения размера - нет.

Третий, заведомо работающий и самый простой - выделить в функции объект динамически и вернуть указатель на него. Но, разумеется, надо не забыть его потом удалить. Ну и насколько я понимаю, в современном C++ такое считается моветоном?

Как думаете? В принципе, если первый вариант не приведёт к падению производительности, возьму, наверное, его. Со строками, датами и другими объектами так делают сплошь и рядом. Просто в данном случае речь про растровые изображения и весьма большие...
20  Qt / Общие вопросы / Re: Ubuntu 22.04 и QtLocation : Август 01, 2022, 15:17
А ещё более простенькое? Где никакого QtLocation нет, обычный Hello world? Тоже виснет?
21  Qt / Общие вопросы / Re: Qt: FAQ о лицензии. Commercial vs Opensource : Июнь 30, 2022, 14:40
В отличие от LGPL, коммерческая версия позволяет распространять приложения, собранные статически. Создавать их можно и без неё, но распространять нельзя.
МОЖНО. Только надо предоставить получателю продукта альтернативный способ замены вашей Qt на другую совместимую.
Один из вариантов - приложить архив с объектными модулями. Заказчику он, конечно, 100 лет не упёрся, но можно ему так и сказать - "этот файлик на 40 метров нужен для соблюдения лицензии, точка". В большинстве же более-менее сложных проектов динамическая компоновка тупо проще и компактнее, тут ты прав.

Да, я помню, что этому комментарию 4 года. Но это один из "мифов про LGPL", которые до сих пор живучи. Вот буквально сегодня приходилось спорить с оппонентом, заявлявшим, что "по Qt с LGPL нельзя выпускать коммерческое ПО".
22  Qt / Общие вопросы / Re: Запуск программы на Qt4 32bit MS VS PostgreSQL Win7 на Win10 64bit чистом : Июнь 30, 2022, 14:33
Вместо Visual Studio, скорее всего, достаточно поставить соответствующий Microsoft Redistributable 20**.
Если и это чересчур, откажитесь от майкрософтовского компилятора и пересоберите программу в MinGW.
Правда, у вас ещё и PostgreSQL... Тогда, возможно, libpq.dll от постгри и то, что она за собой тянет, тоже придётся пересобрать в MinGW (сразу скажу, этого я не делал, ставил постгрю целиком).
23  Qt / Установка, сборка, отладка, тестирование / Re: Бинарник и Библиотеки QT в разные папки : Июнь 22, 2022, 11:02
Да, при тех условиях, которые хочет автор, самое простое, наверное, - это запускать всё через батничек, в который добавлять строчку с PATH перед вызовом EXE.
24  Qt / Вопросы новичков / Re: Использование сигнал/слотов между DLL и основной программой : Июнь 22, 2022, 10:58
Интересует не используют ли они какой-нибудь медленный механизм в отличии от использования их в одном проекте?
DLL является частью процесса, который её загрузил, выводы делай сам.
25  Qt / Пользовательский интерфейс (GUI) / Re: MDI из окон разных процессов : Июнь 22, 2022, 10:57
Что из разных процессов принципиально.
Все программы пишу я сам, т.е  скомпилировать могу как хочу.

Если сам пишешь - то почему принципиально, чем вариант с DLLями не устраивает? Надо, чтобы программы могли запускаться не только из оболочки, но и самостоятельно? Если да, то это в принципе аргумент, хотя и тут можно извернуться.

Цитировать
Без WINAPI тут не обойтись походу.
В 2022 году человек, добровольно, не под пытками, прибивающий свою программу гвоздями к Windows, вызывает, мягко говоря, недоумение.
26  Qt / Пользовательский интерфейс (GUI) / Re: MDI из окон разных процессов : Июнь 20, 2022, 14:38
Критично, что именно другой ПРОЦЕСС?

Я в своё время делал MDI-отображение нескольких программ в одном MDI. Но эти программы были реализованы как DLL (Windows) и SO (Linux), то есть специально написаны под данную оболочку. Грузились по запросу пользователя, из списка, список формировался динамически. Процесс был один. Многопоточность, естественно, в программах можно было организовать своими силами.

Если нужен MDI над уже написанными программами, у которых есть свой GUI, без перекомпиляции - очень сомневаюсь, что такое возможно вообще. Над консольными-то можно написать обёртку через QProcess и парсить их вывод, это, как ни странно, проще...
27  Qt / Базы данных / Re: QPSQL driver not loaded : Июнь 06, 2022, 03:28
Вот несколько скриншотов.
Убедительная просьба - НЕ НАДО делать скриншотов из кусков своего кода! Для этого есть тег [ code ].
Когда вы превращаете код в графику, он, во-первых, замусоривает БД форума, во-вторых, его невозможно найти поиском.
28  Qt / Установка, сборка, отладка, тестирование / Re: Установка qtcreator 5.12.12 на astra linux 1.6.10 : Июнь 03, 2022, 10:06
QSqlDatabase: QSQLITE driver not loaded
Это легендарное сообщение, которое может появляться по куче причин.
Его у тебя точно сам Qreator выдаёт, а не проект, в нём собранный?
29  Разное / Новости Qt сообщества / Re: Доступ к Qt : Май 30, 2022, 15:10
Ну а пока что на репах от GitHub, KDE и https://code.qt.io/cgit/ оно же доступно.
Удваиваю. Конец мая, на гите всё по-прежнему доступно.

Отдельное спасибо qtkoder777 за апанье темы, хотя добивался он видимо, противоположной реакции Улыбающийся))
30  Qt / Пользовательский интерфейс (GUI) / Re: "Тяжелое" окно : Май 19, 2022, 14:53
Можно помечтать о "перезагрузке данных в др нитке"  Улыбающийся

Я думаю, что это не "помечтать", а в итоге самый толковый способ.

Только в GUI thread, думаю, надо хранить статус "загружено - загружается - не загружено". Чудес-то не бывает. Если юзер захочет быстро попереключаться туда-сюда, надо во время загрузки показывать что-то типа "данные загружаются", а если эти данные могут измениться прямо во время работы - возможно, и добавить в инфо-окно кнопку "Обновить", которая снова дёрнет на запуск нитку загрузки. Просто при переключении между окон нитку не дёргать, пусть программа показывает ранее загруженные данные. Иначе вся эта многопоточность быстро доведёт программу до цунгундера. Для особо бестолковых любознательных можно при последующих переключениях подсвечивать рядом с кнопкой "Обновить" надпись что-нибудь типа "Данные могут быть неактуальными", если речь действительно идёт не про файлы, а про данные реального времени...
Страниц: 1 [2] 3 4 ... 13

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