{"id":25564957,"url":"https://github.com/maxchistt/qtvision-static-class-library","last_synced_at":"2025-08-19T21:21:40.760Z","repository":{"id":41767176,"uuid":"426701590","full_name":"maxchistt/QtVision-Static-Class-Library","owner":"maxchistt","description":"C3D QtVision static Qt class library for usage C3D Vision in Qt projects without CMake","archived":false,"fork":false,"pushed_at":"2022-05-31T22:48:46.000Z","size":182,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-24T23:42:04.342Z","etag":null,"topics":["c3d","c3d-toolkit","cmake","cpp","qt","qtvision"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maxchistt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-10T16:46:42.000Z","updated_at":"2022-07-25T13:47:49.000Z","dependencies_parsed_at":"2022-09-01T21:00:22.588Z","dependency_job_id":null,"html_url":"https://github.com/maxchistt/QtVision-Static-Class-Library","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/maxchistt/QtVision-Static-Class-Library","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxchistt%2FQtVision-Static-Class-Library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxchistt%2FQtVision-Static-Class-Library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxchistt%2FQtVision-Static-Class-Library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxchistt%2FQtVision-Static-Class-Library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maxchistt","download_url":"https://codeload.github.com/maxchistt/QtVision-Static-Class-Library/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxchistt%2FQtVision-Static-Class-Library/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271223866,"owners_count":24721763,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c3d","c3d-toolkit","cmake","cpp","qt","qtvision"],"created_at":"2025-02-20T22:00:09.162Z","updated_at":"2025-08-19T21:21:40.740Z","avatar_url":"https://github.com/maxchistt.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QtVision\n\nC3D QtVision static Qt class library for usage C3D Vision in Qt projects without CMake\n\nTo build the project, first place the directories of the C3D Toolkit distribution \"Kernel\" and \"Vision\" in the \"C3D\" folder.\nTo export library into .zip file run QtVision.Export.ps1 by right click -\u003e Run with PowerShell\n\n## Инструкция по использованию\n\nЭто проект статитеской библиотеки классов Qt \"QtVision\", адаптирующий одноименный проект из дистрибутива C3D Toolkit для использования C3D Vision в проектах на C++ и Qt без CMake. Добавлена возможность собрать также и Dll.\n\n### Сборка проекта\n\n#### Cтатическая библиотека\n\n1. Если VS не настроена для работы с Qt, смотрим материал по [ссылке](http://wiki.mpu-cloud.ru/c3d-vision-getting-started)\n1. Копируем папки \"Kernel\" и \"Vision\" из дистрибутива ядра в папку \"C3D\" этого проекта\n1. Открываем `QtVision.sln`, назначаем Example в качестве запускаемого проекта по умолчанию. Теперь мы можем попробовать запустить тестовое приложение\n1. Чтобы собрать библиотеку в архив для подключения в других проектах, отрываем папку решения и запускаем `QtVision.Export.ps1` с помошью `ПКМ -\u003e Выполнить с помощью PowerShell`. Если требуется установить пакет при выполнении, вводим \"Y\". Если скрипт завис на \"Build Debug\", перезапускаем его. По итогу работы скрипт открывает архив (..\\QtVision.zip) с построенной библиотекой и ядром\n1. Если скрипт не работает, собираем вручную: билдим версии Debug и Release, создаем внешнюю папку, копируем `QtVision.lib` из папок \"x64/Debug\" и \"x64/Release\" в во внешнюю папку в подпапки \"Debug\" и \"Release\" соответственно, копируем содержимое \"QtVision/Include\", то есть все заголовочные файлы библиотеки, туда же, в подпапку \"Include\"\n\n#### Динамическая библиотека\n\n1. Настраиваем VS для работы с Qt, ссылка на инструкцию в предидущем разделе\n1. Копируем папки \"Kernel\" и \"Vision\" из дистрибутива ядра в папку \"C3D\" этого проекта\n1. Открываем каталог решения как проект CMake, есть два способа это сделать:\n   - 1. Открываем через СMake Gui, запуская программу 'СMake (cmake-gui)'\n     1. Указываем папку проекта, в качестве папки сборки указываем тот же путь, добавляя \"/Build\"\n     1. Жмем Configure 2 раза, Generate, Open\n   - 1. Открываем через Visual Studio, кликнув по папке решения `ПКМ -\u003e Открыть с помощью Visual Studio`\n     1. Жмем `Переключиться между решениями и доступными представлениями -\u003e Просмотр целевых объектов CMake`\n1. Переключаемся на конфигурацию Debug и собираем целевой обьект \"QtVision\" (`ПКМ -\u003e Сборка`)\n1. Переключаемся на конфигурацию Release и собираем целевой обьект \"QtVision\"\n1. Оставаясь в конфигурации Release, собираем целевой обьект \"ExportLib\". Теперь собранная библиотека в подпапке решения \"ExportLibDll\"\n\n### Подключение и использование\n\n#### Cтатическая библиотека\n\n##### Можно использовать собранную библиотеку\n\nМожно собрать самому или скачать по [ссылке](https://clck.ru/YsCKE) из документа нашей команды. Это инструкция для Visual Studio, в котором мы работаем. При желании похожим образом можно подключить ее в проекте в QtCreator (Гугли как подключать библиотеки в QtCreator)\n\n1. Создаем проект Qt Widgets в Visual Studio\n1. Копируем в папку решения папки библиотек ядра \"Kernel\" и \"Vision\"\n1. Копируем в папку решения папку стаической библиотеки классов Qt \"QtVision\" из собранного или скачанного архива\n1. В свойствах \"Qt Project Settings -\u003e Qt modules\" задаем \"core;opengl;gui;widgets\" (Добавляем opengl)\n1. В свойствах \"C/C++ -\u003e Общие -\u003e Дополнительные каталоги включаемых файлов\" добавляем пути к заголовочным файлам библиотек \"`$(SolutionDir)Vision\\Include;$(SolutionDir)Kernel\\Include;$(SolutionDir)QtVision\\Include;`\". Делаем это построчно, через \"Изменить\", не удаляя то что уже есть\n1. В свойствах \"Компоновщик -\u003e Общие -\u003e Дополнительные каталоги библиотек\" добавляем пути к заголовочным файлам библиотек \"`$(SolutionDir)Vision\\$(Configuration);$(SolutionDir)Kernel\\$(Configuration);$(SolutionDir)QtVision\\$(Configuration);`\".\n1. В свойствах \"Компоновщик -\u003e Ввод -\u003e Дополнительные зависимости\" добавляем имена библиотек импорта для динамических библиотек ядра и имя нашей статической библиотеки классов\"`c3d.lib;c3dvision.lib;qtvision.lib;`\"\n1. Копируем Dll-ки ядра в выходной каталог, или в \"события сборки -\u003e событие перед соркой\" добавляем\n\n```cmd\nxcopy /y \"$(SolutionDir)Vision\\$(Configuration)\\c3dvision.dll\" \"$(SolutionDir)$(Platform)\\$(Configuration)\"\nxcopy /y \"$(SolutionDir)Kernel\\$(Configuration)\\c3d.dll\" \"$(SolutionDir)$(Platform)\\$(Configuration)\"\n```\n\n##### Можно использовать этот проект\n\n1. Создаем проект Qt Widgets в Visual Studio\n1. Копируем в папку решения папки библиотек ядра \"Kernel\" и \"Vision\" в подпапку \"C3D\"\n1. Копируем папку с проектом \"QtVision\" из папки этого решения в папку решения созданного приложения\n1. В контекстном меню решения выбираем \"Добавить -\u003e Существующий проект\" и выбираем \"QtVision.vsxproj\"\n1. В проекте приложения добавляем ссылку на проект \"QtVsion\", жмем \"Ссылки -\u003e Добавить ссылку -\u003e Проект -\u003e QtVsion\"\n1. В свойствах проекта приложения \"Qt Project Settings -\u003e Qt modules\" задаем \"core;opengl;gui;widgets\" (Добавляем opengl)\n1. В свойствах проекта приложения \"C/C++ -\u003e Общие -\u003e Дополнительные каталоги включаемых файлов\" добавляем пути к заголовочным файлам библиотек \"`$(SolutionDir)C3D\\Vision\\Include;$(SolutionDir)C3D\\Kernel\\Include;$(SolutionDir)QtVision\\Include;`\". Делаем это построчно, через \"Изменить\", не удаляя то что уже есть\n1. В свойствах проекта приложения \"Компоновщик -\u003e Общие -\u003e Дополнительные каталоги библиотек\" добавляем пути к заголовочным файлам библиотек ядра \"`$(SolutionDir)C3D\\Vision\\$(Configuration);$(SolutionDir)C3D\\Kernel\\$(Configuration);`\"\n1. В свойствах проекта приложения \"Компоновщик -\u003e Ввод -\u003e Дополнительные зависимости\" добавляем имена библиотек импорта для динамических библиотек ядра \"`c3d.lib;c3dvision.lib;`\"\n1. Копируем Dll-ки ядра в выходной каталог, или в \"события сборки -\u003e событие перед соркой\" добавляем\n\n```cmd\nxcopy /y \"$(SolutionDir)C3D\\Vision\\$(Configuration)\\c3dvision.dll\" \"$(SolutionDir)$(Platform)\\$(Configuration)\"\nxcopy /y \"$(SolutionDir)C3D\\Kernel\\$(Configuration)\\c3d.dll\" \"$(SolutionDir)$(Platform)\\$(Configuration)\"\n```\n\n#### Динамическая библиотека\n\n1. Создаем проект Qt Widgets в Visual Studio\n1. Копируем в папку решения папки библиотек ядра \"Kernel\" и \"Vision\"\n1. Копируем в папку решения папку \"QtVision\" из собранной папки \"ExportLibDll\"\n1. В свойствах \"Qt Project Settings -\u003e Qt modules\" задаем \"core;opengl;gui;widgets\" (Добавляем opengl)\n1. В свойствах \"C/C++ -\u003e Общие -\u003e Дополнительные каталоги включаемых файлов\" добавляем пути к заголовочным файлам библиотек \"`$(SolutionDir)Vision\\Include;$(SolutionDir)Kernel\\Include;$(SolutionDir)QtVision\\Include;`\". Делаем это построчно, через \"Изменить\", не удаляя то что уже есть\n1. В свойствах \"Компоновщик -\u003e Общие -\u003e Дополнительные каталоги библиотек\" добавляем пути к заголовочным файлам библиотек \"`$(SolutionDir)Vision\\$(Configuration);$(SolutionDir)Kernel\\$(Configuration);$(SolutionDir)QtVision\\$(Configuration);`\".\n1. В свойствах \"Компоновщик -\u003e Ввод -\u003e Дополнительные зависимости\" добавляем имена библиотек импорта для динамических библиотек ядра и имя нашей статической библиотеки классов\"`c3d.lib;c3dvision.lib;qtvision.lib;`\"\n1. Копируем Dll-ки ядра и QtVision в выходной каталог, или в \"события сборки -\u003e событие перед соркой\" добавляем\n\n```cmd\nxcopy /y \"$(SolutionDir)Vision\\$(Configuration)\\c3dvision.dll\" \"$(SolutionDir)$(Platform)\\$(Configuration)\"\nxcopy /y \"$(SolutionDir)Kernel\\$(Configuration)\\c3d.dll\" \"$(SolutionDir)$(Platform)\\$(Configuration)\"\nxcopy /y \"$(SolutionDir)QtVision\\$(Configuration)\\QtVision.dll\" \"$(SolutionDir)$(Platform)\\$(Configuration)\"\n```\n\n### Лицензия\n\nПри работе приложений с ядром необходимо активировать лицензию. Для этого в приложениях надо вызывать метод `QtVision::ActivateLicense`. При активации потребуется ввести ключ и сигнатуру, активация может быть сохранена.\nТакже, если вы не собиратесь добавлять этот проект (не собранную библиотеку) в решение с открытым исходным кодом, можно захардкодить лицензию, чтобы пользователям готового приложения не потребовалось вводить ее - заменить в файле `qt_licensewnd.cpp` следующие директивы:\n\n```cpp\n#define C3DKEY  \"\u003cC3DLicenseKey\u003e\"\n#define C3DSIGN \"\u003cC3DSignature\u003e\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxchistt%2Fqtvision-static-class-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxchistt%2Fqtvision-static-class-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxchistt%2Fqtvision-static-class-library/lists"}