한국어
Qt
 

C++ Class QPushButton 의 커스텀 이미지버튼

makersweb 2019.11.05 22:54 조회 수 : 11526

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 118354
120 Qml에서 커튼효과 구현 예제 - Shader Effects file 운영자 2018.12.05 5601
119 MCU용 Qt에 대해서 makersweb 2019.08.22 5612
118 최초의 Qt 6.0 스냅샷 제공 (First Qt 6.0 Snapshot Available) j2doll 2020.06.21 5654
117 Q_D매크로와 d-pointer file makersweb 2019.05.07 5666
116 Qbs에 대한 소개와 설치하는 방법 makersweb 2019.10.09 5706
115 웹기반 Qt Design Viewer [2] file makersweb 2019.10.23 5708
114 QThread 및 QMutex 예제 makersweb 2021.01.12 5754
113 Qt3D의 QML 타입으로 3D렌더링 file makersweb 2019.11.20 5802
112 QPA 플러그인과 HTML5 Backend file makersweb 2017.12.27 5817
111 clazy 로 13개의 시그널, 슬롯 오류 해결 makersweb 2022.08.23 5834
110 Loader를 사용하여 동적으로 QML 로드 makersweb 2021.01.19 5873
109 컨테이너에 적재된 객체를 편리하게 삭제하기 makersweb 2019.09.18 5877
108 VTK 를 사용해서 강력한 시각화(3D, Plotting, Chart)Qt 응용프로그램 개발하기 file makersweb 2022.10.16 5897
107 Qt5기반 독립 프로세스(out-of-process)로 동작하는 가상키보드(virtual keyboard) file makersweb 2019.02.24 5967
106 [Qt] Google Play의 향후 요구 사항을 준수하는 방법 [2] j2doll 2019.07.29 6048
105 Base64로 인코딩된 파일을 복원 makersweb 2023.08.06 6087
104 Qt MQTT의 pus/sub 튜토리얼 file makersweb 2021.02.06 6140
103 QML의 사용자 정의 Image makersweb 2023.09.17 6162
102 QOpenVirtualkeyboard(Qt 5용 한글 및 영문, 숫자 가상키보드) file makersweb 2019.11.27 6171
101 QML과 JavaScript 의 숫자 관련 내장된 함수 makersweb 2021.03.28 6175