본문 바로가기

Qt/라이브러리

LED 인디케이터: QLedIndicator

 

QLedIndicator

Simple LED indicator, very similar to KLed, but without KDE dependencies and with 2-color gradient. Widget subclasses QAbstractButton offering button functions. Included demo (screenshot) shows...

www.linux-apps.com

  • 라이선스: LGPL 3
  • 테스트 환경: Windows 10 Home 22H2 64-bit, Qt 6.5.0, Qt Creator 11.0.1, MinGW 11.2.0 64-bit

리눅스 용으로 작성된 것 같은데 윈도우에서도 잘 돌아감[각주:1]. 예제 프로젝트를 빌드하면 메인 윈도우에서 시그널/슬롯 연결에 몇몇 메시지가 뜨지만[각주:2], 오류없이 빌드되고 예제 프로그램도 잘 작동하는 걸로 보아 위젯 자체는 문제 없는 듯. 통신이나 시스템 상태를 시각적으로 나타내는 데에 효과적일 듯.

라이브러리 사용하기: qmake 프로젝트

소스 코드를 빌드해서 사용하기

소스 코드를 사용하는 것에는 별 다른 설정이 필요 없다. 원본 링크에서 제공하는 tar.gz 파일을 다운받아 압축을 풀어보자. QLedIndicator의 소스 코드를 포함하는 예제 프로젝트 파일이 있다.

특별한 설정 없이 SOURCES, HEADERS 변수에 qledindicator 소스 파일과 헤더 파일만 추가되어 있다. 이 프로젝트를 Qt Creator에서 빌드하면 예제 프로그램이 실행된다.

공유 라이브러리로 만들어 사용하기

소스 코드를 프로젝트에 포함시키는 것이 가장 간단한 방법이긴 하지만 가장 효율적인 방법은 아닌 것 같다. QLedIndicator는 코드 크기도 작고 파일 수도 소스 파일과 헤더 파일이 각각 하나씩만 있는 작은 라이브러리이기 때문에 빌드하는데 시간이 얼마 안 걸리지만 기능이 많고 복잡한 라이브러리는 빌드하는데 시간이 꽤 많이 걸리기도 한다. 이런 경우에는 공유 라이브러리로 만들어 빌드 시간을 단축시키는 것이 좋은 방법인 것 같다.

QLedIndicator를 공유 라이브러리로 만들기 위해 별도의 QLedIndicator 폴더에 소스 파일과 헤더 파일을 복사하자. 그리고 Qt에서 라이브러리 만들기를 참조하여 새 프로젝트 파일을 작성하자.

헤더 파일에서 #define 가드 다음에 라이브러리 매크로를 삽입하자.

#include <QtCompilerDetection>

#if defined (QLEDINDICATOR_LIBRARY)
#define QLEDINDICATOR_EXPORT Q_DECL_EXPORT
#else
#define QLEDINDICATOR_EXPORT Q_DECL_IMPORT
#endif

QLedIndicator 클래스 시그너처에 QLEDINDICATOR_EXPORT 매크로를 삽입하자.

class QLEDINDICATOR_EXPORT QLedIndicator : public QAbstractButton

소스 파일은 손댈 필요가 없다. 여기 까지 작업하고 빌드하면 타겟 폴더에 libqledindicator.a, qledindicator.dll 파일이 생성된다. 예제 프로젝트에서 생성된 QLedIndicator 라이브러리를 사용해서 빌드하면 소스 코드를 사용했던 것과 똑같은 에제 프로그램이 실행된다. QLedIndicator 라이브러리를 사용하는 방법은 Qt/Qt Creator에서 외부 라이브러리 사용하기를 참조하자.


  1. 이게 크로스 플랫폼 개발 툴의 강점인 듯 [본문으로]
  2. 14년 전에 작성된 프로젝트여서 그런듯 [본문으로]