한국어
오픈소스포럼
 이곳은 다양한 오픈소스 프로젝트를 소개하고 리뷰, 활용 방법을 공유합니다.

CopperSpice는 Qt 프레임워크에서 파생된 C++ 크로스 플랫폼 애플리케이션 개발 라이브러리 집합으로 LGPL V2.1 라이선스 오픈 소스 프로젝트이다. Qt의 기본 설계를 변경하고 순수한 C++ 개발자를 위한 라이브러리 세트로 바꾸는 것을 목표로 시작되었으며 공식적으로 Qt 4.8.2 소스코드에서 포크되어 CopperSpice 1.7.1 기준으로 Qt5.x 초중반까지 기능들은 통합된 것으로 보인다.

지금은 Qt와 완전히 다른 프로젝트로 간주되지만 Qt 의 여러 편리한 기능을 계속 사용할 수 있으면서도 라이센스는 LGPL V2.1 의무사항만 충족하면 된다. (CopperSpice 1.7.1 기준)

GCC, clang 또는 MSVC와 같은 기존 툴체인과 함께 CMake 를 사용하여 빌드할 수 있다. 통합개발환경의 경우 Visual Studio 또는 QtCreator를 개발, 빌드, 테스트 및 배포에 사용할 수 있다.

다음과 같은 주요 라이브러리들이 있다.

CsCore

  • Date/Time, Containers (QVector, QList, QMap, QHash, QStack, etc), File System, JSON, Strings (UTF-8, UTF-16)

CsGui

  • File Dialogs, Menus, Widgets (QCheckbox, QPushbutton, QLineEdit, etc), Printing

CsMultimedia

  • Audio, Video

CsNetwork

  • TCP, HTTP, FTP, IPv6, DNS lookups, SSL, URL support

CsOpenGL

  • Rendering Context, Shader

CsScript

  • 응용프로그램에 JavaScript 엔진 포함.

CsSql

  • SQLite, PostgreSQL, MySQL, etc

CsSvg

  • Renderer, Widget

CsWebKit

  • Web View, Web Page

CsXml

  • DOM, Reader

CsXmlPatterns

  • Schema, Xml Query

다음의 몇가지 독립 실행형 라이브러리들은 BSD 라이선스로 제공된다.

  • CsPaint
  • CsSignal
  • CsString
  • CsLibGuarded

 

 

기본 요구사항

CopperSpice 라이브러리를 사용하려면 C++17 컴파일러와 C++17 표준 라이브러리 및 최신 CMake 가 필요하다. 애플리케이션을 빌드하는 방법에 대한 추가 정보는 CopperSpice 문서 또는 샘플 CMake 프로젝트인 KitchenSink 데모 애플리케이션을 통해 얻을 수 있다.

 

CopperSpice의 특징

  • Meta-Object Compiler는 CopperSpice 에서 메타 데이터를 생성하는 데 더 이상 필요하지 않다.
  • moc는 더 이상 필요하지 않으므로 완전히 제거되었다.
  • 원래 moc에서 제공한 모든 기능은 컴파일 시간 템플릿으로 대체되었다.
  • 템플릿 클래스는 데이터 유형에 대한 제한 없이 QObject에서 상속할 수 있다.
  • 복잡한 데이터 타입도 시그널, 슬롯을 통해 전달 할 수 있다.
  • 모든 컨테이너 클래스를 다시 구현

 

그 밖에 더 많은 특징과 장점들은 아래 링크된 공식 사이트 및 문서를 통해 얻을 수 있다.

https://www.copperspice.com/
https://www.copperspice.com/docs/cs_overview/about-cs.html

저장소는 다음과 같다.

https://github.com/copperspice/copperspice

미리 빌드된 라이브러리를 다운로드 받아 빠르게 시작해 볼 수 있다.

https://download.copperspice.com/copperspice/binary/

데모는 다음 위치에 있다.

https://download.copperspice.com/kitchensink/binary/

 
예제:
CopperSpice 버전으로 포팅한 Network loopback
loopback.png

 

 
files.png

▲ MinGW 로 컴파일 후 패키징 목록. Gui 라이브러리 사이즈가 꽤크다.

번호 제목 글쓴이 날짜 조회 수
35 Flutter 위젯의 상태관리에 대해서 file makersweb 2023.04.06 396
34 [NodeGui] JavaScript로 데스크탑 응용프로그램 작성 file makersweb 2023.02.21 926
33 openFrameworks 한글 폰트 설정 및 출력하기 file makersweb 2023.02.19 173
32 LVGL 을 통해 GUI 구현 시 한글 폰트 추가 file makersweb 2023.02.07 959
31 Windows에서 Qt Creator + CMake + vcpkg 로 C++ 개발환경 구성 (POCO 라이브러리 DirectoryWatcher 예제) file makersweb 2023.01.14 587
30 NAppGUI, C언어용 크로스 플랫폼 GUI 라이브러리 file makersweb 2022.10.10 804
29 OTA 오픈소스 프로젝트 makersweb 2022.08.03 440
28 AGL (Automotive Grade Linux) 개요 file makersweb 2022.06.19 1788
27 Chromium과 Ozone 층 file makersweb 2022.03.03 696
26 Flutter Application 에서 한글(EUC-KR) 깨져서 나오는 문제 file makersweb 2022.01.06 2565
» CopperSpice 에 대해서 (C++ Gui 라이브러리) file makersweb 2022.01.02 515
24 Flutter/Dart 와 Qt/QML 비교 file makersweb 2021.11.07 1324
23 VSCode 와 Qbs 플러그인으로 C/C++ 개발환경 구성 file makersweb 2021.09.12 791
22 ZeroMQ 를 이용한 Qt 응용프로그램 간 통신 file makersweb 2021.08.28 791
21 C++를 위한 Lottie 라이브러리 with SDL2 file makersweb 2021.08.15 939
20 CANdevStudio 를 사용하여 CAN 네트워크 시뮬레이션 file makersweb 2021.03.09 1618
19 Protocol Buffers 를 이용한 직렬화 with Conan Package Manager file makersweb 2021.02.24 830
18 라즈베리파이에서 Redis의 Pub/Sub 패턴을 사용하는 Electron 응용프로그램 file makersweb 2021.01.31 656
17 Nana, C++용 크로스플랫폼 GUI 라이브러리 file makersweb 2021.01.06 2015
16 라즈베리파이4에서 openFrameworks 예제 실행 file makersweb 2020.12.13 537