한국어
Qt
 

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

makersweb 2019.11.05 22:54 조회 수 : 11538

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 118389
40 Windows환경에서 mingw로 Qt 5.10 정적(static)빌드 file makersweb 2018.02.01 9471
39 C++로 작성한 클래스를 QML에서 생성 file makersweb 2021.02.10 9478
38 Qt Logging Rule, Qt 프레임워크 로그 출력 makersweb 2017.01.13 9536
37 Qt 멀티 스레드 프로그래밍 시 유의해야 할 몇 가지 makersweb 2020.01.13 9615
36 QPA 플러그인과 EGLFS file makersweb 2017.11.21 9752
35 Qt 어플리에이션 전역에 폰트 설정 makersweb 2018.01.24 10150
34 Qml 기본 컴포넌트 강좌 (3) - 배치(positioning) 컴포넌트 file 운영자 2019.02.10 10282
33 Qml 사용자 ScrollBar 구현 file makersweb 2015.07.24 10306
32 QML내에서의 시그널, 슬롯 시스템 makersweb 2019.09.29 10443
31 QtInstallerFramework로 온라인 설치프로그램(Online Installer)만드는 방법 [4] file makersweb 2019.05.28 10606
30 Qml 및 C++개발시 유용한 팁 [3] makersweb 2018.04.06 10899
29 Qt Quick Controls 2사용 및 스타일 설정 file makersweb 2019.06.07 11054
28 Qt SQL을 이용한 가벼운 데이터베이스 다루기 [1] file 운영자 2019.01.23 11071
27 z-order 를 컨트롤 하기위한 방법 makersweb 2015.05.13 11490
» QPushButton 의 커스텀 이미지버튼 file makersweb 2019.11.05 11538
25 QLabel의 텍스트 색과 배경색을 변경 makersweb 2020.02.25 12022
24 Qml 기본 컴포넌트 강좌 (2) [2] file makersweb 2019.01.05 12612
23 QtConcurrent를 이용하여 쓰레드를 만드는 방법과 MapReduce file makersweb 2016.01.24 13559
22 QML 강좌 - 동적 Listing (ListView) file makersweb 2019.06.01 13828
21 안드로이드 Qt 프로그래밍 file makersweb 2018.11.30 13960