[Qt] Binding, Readonly, Flickable, boundsBehavior, Repeater, orientation, Animation, Behavior on, Easing Curve

amudomolla·2023년 7월 20일
0

Qt

목록 보기
12/12
post-custom-banner

참고 링크


Binding


  • 함수를 호출하는 부분에, 그 함수가 위치한 메모리 주소를 연결 시켜주는 방법

  • C++에 (의해) 생성된 변수를 QML의 프로퍼티와 연결해야 하는 경우에도 사용

  • 변수 Binding 방법

    [1] property string

    property string <name>: ""

    [2] property alias

    • alias는 별명을 지정해 바인딩 시키는 방식으로, <name> 에 값을 넣으면, <alias reference> 에 값을 넣은 것과 같도록 만듦
    property alias <name>: <alias reference>  // 어떤 특정 타입의 property를 가리키도록 하는 방식

readonly property


  • 읽기만 가능한 속성이며, 절대 변하지 않는 값을 설정할 때, 사용
  • 읽기 전용 속성에는 초기화시 값에 정적 값 또는 바인딩 식 할당이 필수
  • 정적 값이나 바인딩 식 할당 후 변경 불가능
  • 형식
    readonly property <propertyType> <propertyName> : <initialValue>

Loader


  • Loader는 QML 파일 (source 속성 사용) 또는 Component 객체 (sourceComponent 속성 사용)를 동적으로 로드해 사용할 수 있도록 함
  • 필요에 따라, 그때 그때 해당 QML 파일만 로드해 애플리케이션이 느려지는 것을 방지
  • 형식
    Loader {
        id : 
        source : 
    }

Connections


  • 대상(target)으로 설정한 객체의 시그널과 시그널 핸들러를 연결
  • 방법
    1) 시그널 정의
    2) 시그널을 수신하고자 하는 곳에 Connections의 타겟으로 연결
    3) 수신한 시그널을 실행하기 위한 핸들러 정의
    👉 시그널 핸들러는 on<Signal> 이라고 정의

Flickable (참고)


(Flick의 사전적 의미 : 휙휙 넘기다.)

  • Flickable은 자식 아이템들을 스크롤 가능하도록 함

  • Flickable는 터치 기반 사용자 인터페이스에서 끌기 동작 때 유용하게 사용

  • 콘텐츠를 자동으로 자르지 ❌
    👉 전체 화면 항목으로 사용하지 않는 경우 : clip속성을 true로 설정하는 작업이 필요

  • 사용 예


boundsBehavior


  • Flickable의 경계를 넘어 아이템을 끌 수 있는지 혹은 Flick할 때, Flickable의 경계를 넘어갈 수 있는지 여부를 결정

  • Flickable.StopAtBounds : flickable의 경계를 넘어 드래그할 수 없으며, flicks가 오버슈트되지 ❌
    (오버슈트 : contents가 플리커블의 경계를 넘어 드래그되거나 튕겨진 거리를 유지하지 못하는 것)
    👉 그 외 : Flickable.DragOverBounds, Flickable.OvershootBounds, Flickable.DragAndOvershootBounds(기본값)


repeater 정렬


Grid 아이템의 Column과 Rows 프로퍼티로 지정한 개수만큼 일정 패턴으로 반복되는 Element를 배치
즉, 일정 패턴으로 반복되는 아이템을 표현하기 위한 것


orientation : 열거 (참고)


  • 목록의 방향을 유지
  • ListView.Horizontal : 세로 방향으로 배치
  • ListView.Vertical : 가로 방향으로 배치

wrapMode(참고)


  • text width에 도달하면, 그 위치에서 줄바꿈 해줌

Animation


  • QML의 item에 적용이 가능
  • 선형(Linear) 방향으로 진행하는 방식을 Easing Curve를 이용해 다양한 방향으로 진행할 수 있도록 해줌

[표 넣기]


Behavior on 속성


  • 속성이 변할 때마다 Animation을 정의
  • EX)

Easing Curve


  • 움직이는 객체가 목적지까지 선형방식으로 이동하는 것이 아닌, 다양한 방식으로 목적지까지 이동하도록 시간과 속도를 특정 패턴에 따라 변화시키는 기능

  • EX) Easing Type은 InOutExpo이고, 지속시간은 1초인 크기가 점점 커지는 팝업을 만든다고 가정할 때, 0.5초까지는 서서히 커지고, 나머지 0.5초 동안은 빠르게 커지는 효과

profile
👩‍💻 기록 및 복습을 위함
post-custom-banner

0개의 댓글