Qt 5

[QML] 반복되는 요소 구현하기: Repeater

우리가 기계를 사용할 떄 얻을 수 있는 이점은 크게 두 가지인데, 누군가 관리하고 있지 않아도 알아서 조건에 맞춰 동작하는 것(조건화)과 반복적인 일을 대신하는 것(반복화)일 것이다. 흔히 if절과 for절로 설명되는 이 두 기능은 많은 코딩언어에서 비슷한 문법으로 작동하는, 매우 주요한 기능이기도 하다.그러나 QML에서는 이들이 조금 다르게 작동하는데, 어디까지나 마크업 언어이기 때문에 일반적인 프로그래밍 언어에서처럼 if절이나 for절을 선언할 수 없기 때문이다. 그래서 if절도 for절도 각각 우회적인 방법으로 구현되는데, 그 중 오늘은 for절과 대응되는 컴포넌트인 Repeater를 살펴보고자 한다.Repeater는 이름 그대로, 반복되는 요소를 넣기 위한 컴포넌트 요소이다. 지난 글에서의 Row..

Qt 2024.11.25

[QML] 가장 기본적인 컴포넌트, Item

HTML(HyperText Markup Language)에서 가장 기본적인 요소를 꼽으라면 와 같은 태그가 될 텐데, QML에서는 Item이 이와 비슷한 지위를 갖는다. Item은 말 그대로 단순히 어떤 물체를 정의하는 것인데, 많은 컴포넌트 요소가 이 Item을 상속받아 사용하며, 따라서 Item이 가진 속성의 대부분이 공용되는 반면에 Item은 다른 컴포넌트의 많은 속성들을 사용할 수 없기도 하다.Item이 갖는 대표적인 속성들이 주로 크기와 위치에 관계된 속성들로, 예를 들어 x,y, width, height와 같은 기본적인 레이아웃 관련 속성들과 anchors와 같은 바인딩 관련 속성이 그것이다. 우선 x, y, width, height의 경우 그 이름 그대로 x좌표, y좌표, 너비, 높이를 의미..

Qt 2024.11.23

[QML] Component 호출하기

QML은 최근의 다른 여러 프론트엔드 프레임워크 및 라이브러리들과 마찬가지로, 컴포넌트형 모듈화를 지원한다. 유사한 언어에서의 경험이 있다면 굉장히 쉽게 이해할 수 있지만, 웹의 기본 마크업 언어인 HTML에서는 지원하지 않는 형태라 HTML만 접했던 상태라면 낯설게 느껴질 수 있다. 하지만 매우 단순하니, 절대 겁먹을 필요는 없다.1. 같은 폴더 상에 위치한 QML 불러오기만약 폴더 트리 상 같은 경로에 있는 QML이라면, 단순히 그 QML의 파일명을 적는 것만으로 모듈을 불러올 수 있다. Container라는 컴포넌트를 작업하면서 같은 폴더에 저장된 Joystick이라는 컴포넌트를 부르고 싶다면,//Container.QMLItem { width:500 height:300 Joystick { ..

Qt 2024.11.21

[QML] Binding 개념 숙달하기

QML에서 중요한 개념이 바인딩 (Binding)인데, 이 바인딩을 잘 활용하는 것이 QML의 사용성을 매우 높여줄 수 있는 동시에 이로 인한 오류가 QMl을 다루는 데 있어서 가장 스트레스를 주는 요인이기도 하기 때문이다. 때문에 먼저 그 개념을 정확하게 이해하고 갈 필요가 있다.바인딩은 말 그대로, 둘 이상의 사이를 엮는다는 의미이다. 단순히 이 문장으로는 이해하기 어렵기 때문에 간단한 예제를 통해 살펴보면,Item { id:idItem width:500 height:500}Rectangle { anchors.centerIn: idItem width: idItem.width * 0.5 height: idItem.height * 0.5}위의 예시에서 Rectangle 컴포넌트는 I..

Qt 2024.11.20

[Qt] Qt에 대해 알아보자.

Write once, compile anywhereQt는 C++을 기반으로 하는 그래픽 사용자 인터페이스(GUI) 프레임워크로, 엔진에 해당하는 C++언어와 표시 언어인 자체 규격의 QML 두 가지 언어를 활용한다. LGPL 또는 GPL 라이센스를 적용하는 대부분의 라이브러리 특성 상 코드를 공개할 경우에는 비 상업적인 용도 한정으로 무료로 사용할 수 있지만, 상업적인 용도로 쓰거나 코드 공개를 하지 않으려면 라이센스 비용을 지불해야 한다.크로스 플랫폼을 지원하는 장점이 있으나 태생이 데스크톱 환경으로 출발하여, 모바일 환경에 대한 최적화가 아주 좋은 평가를 받고 있지는 못하다. 그러나 버전이 오르면서 개선이 이뤄지고 있으며, 해외에서는 많은 프로그램들이 Qt로 만들어지고 있어 글로벌하게 본다면 장래성이..

Qt 2024.11.18
반응형