한국어
Qt
 

C++ Class Qt 응용프로그램을 개발할 때 사용자정의 이미지버튼을 만드는 방법은 여러가지가 있지만 기본은 QWidget을 서브클래싱하여 구현한다. 위젯 기반의 Qt응용프로그램 개발에서 자주 사용되는 QPushButton이 있는데 QPushButton 클래스 또한 QWidget 을 기반으로 두고있음을 알 수 있다.

 

간단한 이미지 버튼을 만드는 방법중에 QPushButton을 사용하는 방법으로 Qt Style Sheet를 이용하면 간단하게 구현할 수 있다. Qt Style Sheets는 위젯의 모양을 사용자 정의하여 다양한 형태로 바꿀 수 있다. https://doc.qt.io/qt-5/stylesheet-reference.html

 

다음은 버튼을 클릭하지 않았을 때의 normal상태와 클릭했을때의 pressed 상태의 이미지 버튼을 구현하는 간단한 예제이다.

QPushButton *mybutton = new QPushButton(this);

mybutton->setStyleSheet(
            "                                  \
            QPushButton {                      \
                border-image: url(:/normal.png); \
                background-repeat: no-repeat;  \
            }                                  \
                                                \
            QPushButton:pressed {              \
                border-image: url(:/pressed.png); \
                background-repeat: no-repeat;  \
            }                                  \
            ");

mybutton->setGeometry(0, 0, 45, 131);

 

다음과 같이 간단한 사용자 정의 이미지 버튼을 만들 수 있다.

makerswebImageButton.gif

번호 제목 글쓴이 날짜 조회 수
공지 Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 운영자 2019.01.05 110100
80 컨테이너에 적재된 객체를 편리하게 삭제하기 makersweb 2019.09.18 3449
79 C++로 구현된 모델을 QML의 ListView에서 참조 file makersweb 2019.09.07 7826
78 QSocketNotifier로 파일 디스크립터의 활동감지 makersweb 2019.08.28 4530
77 MCU용 Qt에 대해서 makersweb 2019.08.22 4097
76 [Qt News] Qt for Python을 위한 기술 비전 j2doll 2019.08.20 4353
75 열거형(enum)을 QML에서 사용하는 방법과 문자열(QString)로 얻기 makersweb 2019.08.20 6786
74 [Qt News] Qt 6 기술 비전 (Technical vision for Qt 6) [2] j2doll 2019.08.08 4597
73 [Qt News] Qt6 Git 개발 초기 단계 시작하기 j2doll 2019.08.02 4458
72 [Qt] Google Play의 향후 요구 사항을 준수하는 방법 [2] j2doll 2019.07.29 3413
71 Qt기반의 오픈소스 프로젝트들 - 2 운영자 2019.07.21 7062
70 QML, 이미지, 폰트등을 바이너리 리소스로 만들기 makersweb 2019.06.24 6190
69 Qt Creator에서 임베디드 장치로 deploy설정(Custom Process Step) file makersweb 2019.06.15 4971
68 Qt Quick Controls 2사용 및 스타일 설정 file makersweb 2019.06.07 8931
67 QML 강좌 - 동적 Listing (ListView) file makersweb 2019.06.01 12555
66 QtInstallerFramework로 온라인 설치프로그램(Online Installer)만드는 방법 [4] file makersweb 2019.05.28 8616
65 QtCreator Design으로 GUI만들기 (QML로 만드는 Hello World -2) [1] file makersweb 2019.05.26 18792
64 QML에서 멀티 스레드(multithreading) 프로그래밍 file makersweb 2019.05.25 4897
63 QtSerialPort를 사용한 시리얼(Serial)통신 [3] makersweb 2019.05.21 16322
62 Qt기반의 오픈소스 프로젝트들 makersweb 2019.05.15 7805
61 Q_D매크로와 d-pointer file makersweb 2019.05.07 3646