한국어
Qt
 

QML and Qt Quick OpacityMask 예제

makersweb 2023.01.26 21:03 조회 수 : 7141

OpacityMask을 사용하면 소스 아이템을 다른 아이템으로 마스킹할 수 있다.

import QtQuick
import QtQuick.Window
import Qt5Compat.GraphicalEffects

Window {
    visible: true
    width: 500
    height: 400
    title: qsTr("QtQuick GraphicalEffects")

    Rectangle {
        id: area
        anchors.fill: parent
        color: "white"

        Rectangle {
            id: punchHole
            width: 400
            height: 300

            anchors.centerIn: parent

            color: "yellowgreen"

            layer.enabled: true
            layer.effect: OpacityMask{
                maskSource: Rectangle {
                    width: punchHole.width
                    height: punchHole.height
                    radius: 15
                }
            }

            /* Internel Content */
            Text {
                font.pixelSize: 20
                text: qsTr("This property allows the effect output pixels to be cached \n in order to improve the rendering performance.")
                anchors.centerIn: parent
                color: "black"
                horizontalAlignment: Text.AlignHCenter
            }
        }
    }
}

 

OpacityMask.png


다음과 같은 이미지를 넣어보자.

sky.jpg

단지 Image 아이템을 사용하고 source를 지정하면 된다.

import QtQuick
import QtQuick.Window
import Qt5Compat.GraphicalEffects

Window {
    visible: true
    width: 500
    height: 400
    title: qsTr("QtQuick GraphicalEffects")

    Rectangle {
        id: area
        anchors.fill: parent
        color: "white"

        Image {
            id: punchHole
            width: 400
            height: 300

            anchors.centerIn: parent

            source: "qrc:/sky.jpg"

            layer.enabled: true
            layer.effect: OpacityMask{
                maskSource: Rectangle {
                    width: punchHole.width
                    height: punchHole.height
                    radius: 15
                }
            }

            /* Internel Content */
            Text {
                font.pixelSize: 20
                text: qsTr("This property allows the effect output pixels to be cached \n in order to improve the rendering performance.")
                anchors.centerIn: parent
                color: "greenyellow"
                horizontalAlignment: Text.AlignHCenter
            }
        }
    }
}

 

OpacityMask1.png

번호 제목 글쓴이 날짜 조회 수
공지 Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 운영자 2019.01.05 118370
160 안드로이드 Qt 프로그래밍 file makersweb 2018.11.30 13955
159 QML 강좌 - 동적 Listing (ListView) file makersweb 2019.06.01 13828
158 QtConcurrent를 이용하여 쓰레드를 만드는 방법과 MapReduce file makersweb 2016.01.24 13559
157 Qml 기본 컴포넌트 강좌 (2) [2] file makersweb 2019.01.05 12603
156 QLabel의 텍스트 색과 배경색을 변경 makersweb 2020.02.25 12017
155 QPushButton 의 커스텀 이미지버튼 file makersweb 2019.11.05 11530
154 z-order 를 컨트롤 하기위한 방법 makersweb 2015.05.13 11485
153 Qt SQL을 이용한 가벼운 데이터베이스 다루기 [1] file 운영자 2019.01.23 11071
152 Qt Quick Controls 2사용 및 스타일 설정 file makersweb 2019.06.07 11047
151 Qml 및 C++개발시 유용한 팁 [3] makersweb 2018.04.06 10888
150 QtInstallerFramework로 온라인 설치프로그램(Online Installer)만드는 방법 [4] file makersweb 2019.05.28 10599
149 QML내에서의 시그널, 슬롯 시스템 makersweb 2019.09.29 10440
148 Qml 사용자 ScrollBar 구현 file makersweb 2015.07.24 10306
147 Qml 기본 컴포넌트 강좌 (3) - 배치(positioning) 컴포넌트 file 운영자 2019.02.10 10274
146 Qt 어플리에이션 전역에 폰트 설정 makersweb 2018.01.24 10147
145 QPA 플러그인과 EGLFS file makersweb 2017.11.21 9738
144 Qt 멀티 스레드 프로그래밍 시 유의해야 할 몇 가지 makersweb 2020.01.13 9615
143 Qt Logging Rule, Qt 프레임워크 로그 출력 makersweb 2017.01.13 9529
142 C++로 작성한 클래스를 QML에서 생성 file makersweb 2021.02.10 9478
141 Windows환경에서 mingw로 Qt 5.10 정적(static)빌드 file makersweb 2018.02.01 9471