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

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 openFrameworks 한글 폰트 설정 및 출력하기 file makersweb 2023.02.19 198
34 Flutter 위젯의 상태관리에 대해서 file makersweb 2023.04.06 450
33 OTA 오픈소스 프로젝트 makersweb 2022.08.03 471
32 도커(docker)설치 및 기본 명령어 makersweb 2019.12.02 482
» CopperSpice 에 대해서 (C++ Gui 라이브러리) file makersweb 2022.01.02 537
30 라즈베리파이4에서 openFrameworks 예제 실행 file makersweb 2020.12.13 559
29 Windows에서 Qt Creator + CMake + vcpkg 로 C++ 개발환경 구성 (POCO 라이브러리 DirectoryWatcher 예제) file makersweb 2023.01.14 667
28 라즈베리파이에서 Redis의 Pub/Sub 패턴을 사용하는 Electron 응용프로그램 file makersweb 2021.01.31 681
27 Chromium과 Ozone 층 file makersweb 2022.03.03 728
26 윈도우에서 안드로이드 flutter 프로그래밍 개발환경 구축(with Visual Studio Code) file makersweb 2020.09.16 794
25 ZeroMQ 를 이용한 Qt 응용프로그램 간 통신 file makersweb 2021.08.28 831
24 VSCode 와 Qbs 플러그인으로 C/C++ 개발환경 구성 file makersweb 2021.09.12 846
23 NAppGUI, C언어용 크로스 플랫폼 GUI 라이브러리 file makersweb 2022.10.10 861
22 Protocol Buffers 를 이용한 직렬화 with Conan Package Manager file makersweb 2021.02.24 861
21 C++를 위한 Lottie 라이브러리 with SDL2 file makersweb 2021.08.15 962
20 LVGL 을 통해 GUI 구현 시 한글 폰트 추가 file makersweb 2023.02.07 1082
19 [NodeGui] JavaScript로 데스크탑 응용프로그램 작성 file makersweb 2023.02.21 1083
18 Qt와 GStreamer 로 작성한 flac 오디오 재생 예제 file makersweb 2020.09.05 1139
17 Flutter/Dart 와 Qt/QML 비교 file makersweb 2021.11.07 1401
16 CANdevStudio 를 사용하여 CAN 네트워크 시뮬레이션 file makersweb 2021.03.09 1697