소개
지식공유자 소개 ✒️
근무경력
현: 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 )
강의
전체 9로드맵
전체 1수강평
- [초급] QML 프로그래밍 2편
- [입문] Qt 6 프로그래밍 1편
- [초급] QML 프로그래밍 2편
게시글
질문&답변
2024.12.02
자주 사용하는 Layout 살펴보기
안녕하세요. kurugi 님layout.addWidget(btn3, 1, 0, 1, 2)에서 마지막 두 숫자 1, 2는 row span과 column span을 의미합니다. 이는 해당 위젯이 그리드 레이아웃 내에서 몇 개의 행과 열을 차지할지를 지정하는 매개변수입니다. 이를 자세히 설명하겠습니다:layout.addWidget(btn3, 1, 0, 1, 2)의 의미1, 0: btn3는 그리드의 1행 0열에서 시작합니다.1: btn3는 1행만 차지합니다 (rowSpan = 1).2: btn3는 2열을 차지합니다 (columnSpan = 2).즉, btn3는 1행의 0열과 1열을 가로로 차지하게 됩니다. 따라서 그리드의 [1, 0]과 [1, 1]을 모두 포함합니다.layout.addWidget(btn3, 1, 0, 1, 2)에서 1, 2는 btn3가 2개의 열을 차지한다는 뜻이지, 1열과 2열을 사용하는 것이 아닙니다. 따라서, [1, 0]과 [1, 1]을 차지하며, [1, 2]는 차지하지 않습니다. 1, 1을 명시적으로 추가하지 않아도 btn3가 columnSpan으로 인해 두 열을 포함하는 겁니다.혹시 더 궁금한게 있으면 언제든 질문해 주세요.감사합니다. 김대진 드림.
- 1
- 2
- 12
질문&답변
2024.12.01
강의 pdf파일 올려 주시면 안될까요?
안녕하세요. kurugi님, 강의PPT는 따로 pdf로 제공하지 않는 점 양해 부탁드려요.감사합니다. 김대진 드림.
- 1
- 2
- 13
질문&답변
2024.11.25
'Re-entrancy' 사용 시 프로그램 속도 문의드립니다.
Reentrancy는 강제로 순차적으로 하는 것이 아니라 여러 Thread가 병렬로 동작하는 특정 조건에서 Thread를 더 안전하게 동작하도록 설계하기 위한 방식입니다. 순차적으로 작업하는 방식은 동기화 방식이고 Re-entrancy는 여러 Thread가 동작되는 상황에서 Thread들이 안전하게 실행되는데 목적이 있습니다.따라서 Re-entrancy는 객체나 함수가 여러 스레드에서 동시에 호출되더라도 안전하게 동작하도록 설계된 프로그래밍 방식을 의미합니다. Re-entrancy는 Thread를 순차 실행하는 것과는 관련이 없습니다. Re-entrancy도 Thread를 안전하게 쓰는 방법을 말합니다.예를 들어 컴퓨터 공장에서 컴퓨터를 만드는데 A공장과 B공장이 있다고 가정해 봅시다. A공장과 B공장은 함께 동작되는데 A공장에서 먼저 컴퓨터를 만드는 작업이 완료되어야 만 B공장에서 컴퓨터를 만드는 작업을 완성할 수 있다고 가정해볼께요.만약 B공장이 컴퓨터를 만드는 작업중에 A공장을 거치지 않고 컴퓨터를 만드는 것을 진행하면 불량 컴퓨터가 만들어 지겠죠. 이것을 순차적으로 하면 블록킹이 걸려서 다른 공장들이 작업을 못하겠죠. 이 회사는 컴퓨터만 만드는 것이 아니라 가전들도 다른 공장(예로 C, D, E 등의 공장)들과 함께 만든다고 가정한다면 컴퓨터를 만드는 공장들 때문에 블록킹이 걸릴 수 있겠죠.그래서 Re-entrancy 는 Thread를 사용하는데 좀더 Thread를 병렬로 쓰는데 안전하게 Thread를 쓰기 위한 하나의 방법입니다. Re-entrancy는 Thread 와 별개가 아닙니다. 여기서 공장을 Thread로 대입해 보시면 더 이해하는데 도움이 되실 것 같습니다. 혹시 더 궁금한게 있으면 언제든 질문해 주세요.
- 1
- 2
- 25
질문&답변
2024.11.01
QImage에서 이미지가 안불러와집니다.
안녕하세요. 프로젝트에 확장자가 qrc 파일이 없는것 같습니다. Qt 프로젝트에서 이미지 리소스를 불러오는 방법을 살펴보면, 리소스 파일 (.qrc)을 사용하여 파일을 프로젝트에 추가한 후에야 QImage 또는 QPixmap을 통해 이미지를 불러올 수 있습니다. 아래 단계를 따라 이미지가 제대로 로드되도록 확인해보세요. 리소스 파일 (.qrc) 설정하기리소스 파일 추가: Qt 프로젝트에서 리소스 파일이 없다면, 먼저 .qrc 파일을 생성합니다. (예: myresources.qrc)리소스 파일에 이미지 추가: 리소스 파일에 이미지 경로를 등록합니다. 이때 resource/image.jpg와 같은 경로를 지정해 줍니다. resource/image.jpg 위와 같이 리소스 파일을 저장하고 프로젝트를 빌드하면 실행이 됩니다.
- 1
- 2
- 33
질문&답변
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
- 163