소개
지식공유자 소개 ✒️
근무경력
현: Embedded 분야 Senior software developer
LG전자, VS사업부 IVI선행플랫폼/모듈개발
SW마에스트로, SW 멘토
강의경력
삼성전자, Qt & QML 강의
LG전자, Qt & QML 분야 사내 강사
한컴아카데미 Qt 강의 출강
다수의 IT기업 Qt 강의 출강
저서
Qt 프로그래밍
Qt Quick 프로그래밍
Qt5 프로그래밍 가이드
MeeGo 프로그래밍 완벽 가이드
Qt 실전 프로그래밍
SW커뮤니티 운영
Qt 개발자 커뮤니티 운영자 ( www.qt-dev.com )
강의
전체 8로드맵
전체 1수강평
- [입문] Qt 6 프로그래밍 1편
- [초급] QML 프로그래밍 2편
게시글
질문&답변
2024.11.01
QImage에서 이미지가 안불러와집니다.
안녕하세요. 프로젝트에 확장자가 qrc 파일이 없는것 같습니다. Qt 프로젝트에서 이미지 리소스를 불러오는 방법을 살펴보면, 리소스 파일 (.qrc)을 사용하여 파일을 프로젝트에 추가한 후에야 QImage 또는 QPixmap을 통해 이미지를 불러올 수 있습니다. 아래 단계를 따라 이미지가 제대로 로드되도록 확인해보세요. 리소스 파일 (.qrc) 설정하기리소스 파일 추가: Qt 프로젝트에서 리소스 파일이 없다면, 먼저 .qrc 파일을 생성합니다. (예: myresources.qrc)리소스 파일에 이미지 추가: 리소스 파일에 이미지 경로를 등록합니다. 이때 resource/image.jpg와 같은 경로를 지정해 줍니다. resource/image.jpg 위와 같이 리소스 파일을 저장하고 프로젝트를 빌드하면 실행이 됩니다.
- 1
- 2
- 28
질문&답변
2024.10.17
Qt5 라이센스 질문(상업적용도)
안녕하세요. 네, 전반적으로 정확하게 이해하셨습니다! 조금 더 구체적으로 설명하자면, 상업 라이선스(유료 버전)와 오픈소스 라이선스(무료 버전)가 존재합니다.상업 라이선스는 소스코드 공개 의무 없이 사용 가능합니다.오픈소스 라이선스는 모듈별로 LGPL 또는 GPL 3.0 라이선스가 적용됩니다.LGPL 라이선스는 라이브러리를 수정하지 않고 동적 링킹(dynamic linking)하여 사용하면, 결과물의 소스코드를 공개할 필요가 없습니다.즉, 라이브러리를 수정하지 않고 사용하는 경우 결과물에 대한 소스코드를 공개하지 않아도 되며, 단지 LGPL 라이브러리를 사용했다는 사실만 명시하면 됩니다.GPL 3.0 라이선스는 라이브러리를 수정했는지 여부에 관계없이, 결과물의 소스코드를 공개해야 합니다.따라서, GPL 3.0이 적용된 모듈을 사용하면 소스코드 공개 의무가 발생합니다.결론적으로, 말씀하신 것처럼 LGPL 라이선스가 적용된 모듈만 사용하면 소스코드를 공개할 의무는 없고, Qt를 사용했다는 것을 명시해야 하는 걸로 알고 있습니다.지금까지 설명 드린 내용은 어디까지나 참조할 용도로만 사용하셔합니다. 정확한 법적 참고 자료로사용할 수 는 없습니다. 이점 양해부탁드려요. ㅜ.ㅜ;그리고 만약 Qt 를 사업적으로 사용하는 경우, Embedded 인 경우런타임 라이선스가 있습니다. 이점도 체크해보셔야 할 것 같습니다. Embedded 인 경우 대당 별도의 라이선스비가 있습니다. 혹시 더 궁금한게 있으면 언제든 답변주세요.~감사합니다. 김대진 드림.
- 1
- 2
- 89
질문&답변
2024.10.12
TableView에서 ImplicitWidth, ImplicitHeight와 일반 width, height의 차이가 궁금합니다.
QML에서 ImplicitWidth와 ImplicitHeight는 컴포넌트의 기본적인 크기(내부 크기)를 나타내고, width와 height는 실제로 렌더링할 때 적용되는 크기를 지정하는 속성입니다. 하지만 TableView나 다른 레이아웃 기반 컴포넌트 내에서 사용할 때는 두 속성이 다르게 작동할 수 있습니다. ImplicitWidth와 ImplicitHeight의 특징컴포넌트가 크기를 명시적으로 설정하지 않았을 때 QML이 해당 컴포넌트의 적절한 크기를 계산하기 위해 사용하는 기본 크기입니다.레이아웃이나 컨테이너가 자식 요소의 크기를 관리할 때, ImplicitWidth와 ImplicitHeight는 자식 요소가 최소한으로 필요한 공간을 알려주는 역할을 합니다. 즉, 명시적인 크기를 지정하지 않아도 자동으로 적절한 크기를 설정해줍니다 width와 height의 특징명시적으로 설정하는 크기입니다. 만약 width와 height를 설정했다면, 그 값이 컴포넌트의 실제 크기로 사용됩니다. 하지만 TableView나 GridView와 같은 레이아웃 컴포넌트에서는 width와 height가 부모 컴포넌트나 레이아웃의 규칙에 의해 무시될 수 있습니다. 이때 컴포넌트는 레이아웃이 관리하는 크기 제약을 따르므로, width와 height 대신 ImplicitWidth와 ImplicitHeight를 사용하는 것이 더 적절할 수 있습니다.
- 1
- 1
- 39
질문&답변
2024.10.12
GridView에서 Padding과 Margin의 차이가 있을까요?
GridView에서 전체 항목들이 경계와 떨어지도록 간격을 설정하고 싶다면 Padding을 사용하고, 개별 항목들 사이의 간격을 조정하고 싶다면 Margin을 설정할 수 있습니다.
- 1
- 1
- 36
질문&답변
2024.10.12
ListView에서 currentIndex 작동안됩니다.
안녕하세요. 다중언어GUI님,네, ListView에서 currentIndex: 50을 설정하면 목록에서 50번째 항목이 선택된 상태가 되어야 하며, 리스트가 그 부분으로 스크롤되어 보여야 하는 것이 맞습니다. 그러나 실행 후에도 시작 위치가 항상 0으로 보인다면, 몇 가지 확인해볼 사항이 있습니다.focus: currentIndex가 설정되어도 ListView가 해당 항목으로 자동으로 스크롤되지 않는 경우가 있습니다. 이럴 때는 ListView의 focus 속성을 true로 설정하거나, ListView에 스크롤을 직접 적용하는 방법이 필요할 수 있습니다.ListView.positionViewAtIndex() 사용: currentIndex만으로는 원하는 항목이 보이지 않을 수 있기 때문에, positionViewAtIndex() 메서드를 사용하여 해당 인덱스로 스크롤하는 것을 강제할 수 있습니다.ListView { id: listView model: 100 // 예시로 100개의 아이템이 있다고 가정 currentIndex: 50 Component.onCompleted: { listView.positionViewAtIndex(50, ListView.Beginning) } } 혹시 더 궁금한게 있으면 언제든 질문해 주세요.
- 1
- 3
- 42