21년 12월 19일 더뮤직스쿨에서 피아노+화성학 패키지 인강을 등록하였다. 유튜브를 통해서 배우는 강의들도 있고 하였지만, 그래도 유료 강의가 더 체계적으로 하지 않았을까 하는 마음에 찾게되었고 나름 잘 만들어진 인강인것 같다. 화성학을 등록한 이유는 그냥 피아노만 치는 것보다는 음악을 배운다는 공부를 하고 싶었고 기초적인 내용들을 알면 좋겠다는 생각으로 도움이 되지 않을까 하는 것이었다. 그리고 역시 패키지가 가격대비 효율이 높다!! ㅎ 6개월 수강권인데.. 천천히 꾸준히만 하면 충분한 시간일 것이다.
이번 강의에서는 Application 에서 plugin 을 ui 을 사용하는 방법에 대해 알아보도록 하겠습니다. 1. Application 환경 구축 Designer에서 만든 Widget을 추가해서 App ui파일에 그리는 것까지 했습니다. 하지만, 프로젝트 빌드를 해보면 컴파일 에러가 나옵니다. 기본적으로 library 를 사용하려면 header 참조를 찾아야 하는데 ui_QtMyApp.h 파일에서 우리가 만든 plugin library 의 header를 참조하지 못해서 컴파일 에러가 발생했습니다. 일반적으로 library 프로젝트와 app 프로젝트가 같은 솔루션에 있기 때문에 상대 경로를 이용해서 header를 연결하면 될 수 있지만 이런 방법은 shared dll library 를 활용하는 방법으로..
올해 7살인 소율이가 10월 경부터 피아노를 시작하였다.. 전에는 가볼래라는 말에도 반응이 없이 태권도를 다니더니 갑작스럽게 피아노를 배우고 싶다는 말을 해서 다니게 되었다. 뭐.. 얼마나 갈런지 모르지만 그래도 하고 싶은걸 한번쯤은 경험하게 해주는 것이 부모의 역할이지 않을까 하는 마음에 시작을 하게되었고.. 그렇게 시간이 지나 12월에는 3남매의 크리스마스 선물을 빙자하여 할머니에게 선물을 받았다~ 처음으로 사는 피아노이니 적당한 선에 사려던게.. 나름 큰돈을 들이게 된 롤랜드 FP-30X 화이트 모델을 사게되었다. 그렇게.. 타의로 나의 피아노가 다시 시작되었다. 기억을 회상해보면 국민학교 3학년 쯤에 친구 따라서 음악학원을 다니게 된 전형적인 아이였고, 체르니 100을 마치고는 실증나서 그만 두었..
2강에서 Qt VS Tools의 template 프로젝트를 이용하여 widget plugin프로젝트를 만들었습니다. 이번 강의에서는 Widget 프로젝트를 Qt Designer 에서 활용하는 방법과 주의점을 설명하겠습니다 1. App 프로젝트 만들기 Custom Widget을 띄울 application 프로젝트를 QtWidgetTutorial 솔루션에 추가하여 생성합니다. 그림 순서대로 따라하면 됩니다. Qt WidgetApplicaiton 에서는 Base class를 3가지 형태로 제공하는데 간단하게 QDialog 로 만들었습니다. QMainWindow나 QWidget 어느 형태여도 상관은 없습니다. 프로젝트 생성을 완료하면 다음과 같은 파일 구조를 만들게 됩니다. 2. CustomWidget 등록하기..
2강부터는 1강의 Intro 에서 설명했었던 방식에서 Plugin 을 활용하여 Custom Widget을 개발하는 방법을 설명하겠습니다. 우선 기본 프로젝트를 생성하고 ui 파일을 등록하는 방법을 설명하도록 하겠습니다. 1. Plugin 프로젝트 만들기 Visual studio에서 새로운 프로젝트를 Qt Designer Custom Widget template를 이용해서 생성합니다. 우선 새로운 솔루션과 프로젝트를 생성합니다. QtWidgetTutorial 솔루션을 만들고 이 솔루션에 계속 이어질 프로젝트들을 연결할 예정입니다. Widget Wizard 를 보면 아래의 Widget을 위한 클래스와 Plugin 클래스가 생성되는 것을 확인할 수 있습니다. 생성된 프로젝트의 파일 구조를 보면 자동으로 MyW..
필자는 그동안 주로 C# 기반의 프로그램을 개발하였고 여러 형태의 GUI 개발을 해왔습니다. 그런 경험 때문에 Qt에서도 당연히 Widget을 여러개로 분류하고 필요에 따라서 조합하여 사용하는 것을 당연하다고 생각했습니다. 하지만, Qt에서는 이런 개발 방식에 매우 불편하고 친절한 tutorial 이 없는 것 같습니다. 그래서 이번에는 Qt 를 이용하여 사용자의 Custom Widget을 적용하는 방법에 대해 공부한 것들을 개인적으로 정리하면서 필요하신 분들에게 공유하고자 부족한 내용이나마 연재하고자 합니다. 우선 공식 문서에 따르면 Qt에서 Custom Widget을 만드는 방법은 Promotion 과 Plugin 방식으로 두가지로 접근이 가능합니다. 1. Promotion 방식 우선 Promotion..
Visual Studio의 프로젝트를 빌드하고 나서 원하는 cmd 명령 또는 batch 파일을 실행이 필요한 경우에는 Project의 Post Build Event 를 사용할 수 있습니다. 하지만 필자도 batch command에 익숙하지 않아서 간단한 파일 복사정보다 써왔습니다. batch command 를 작성하는데 유용할 수 있는 내용과 실수가 될 수 있는 부분들을 정리합니다. 기본적으로 cmd 명령어에 대한 참고 사이트가 있습니다. 여기에 기술되지 않은 명령어나 더 자세히 알고 싶은 내용이 있다면 참고하거나 cmd 창에서 help [명령어] 를 해서 확인할 수 있습니다. 참고 : An A-Z Index of Windows CMD commands - SS64.com 1.변수 사용하기 cmd 명령을 ..
Qt와 같이 빌드가 완료된 binary 파일을 사용하는 opensource의 경우 debugging 하면서 call stack 에서 해당 소스의 정보를 알수가 없어서 cpp 파일을 찾을 수 없다고 나옴니다. 만약 call stack으로 라이브러리의 source 정보를 tracking 하기 위해서 debugging source 경로를 추가 할 수 있습니다. 물론 해당 라이브러리의 source는 별도로 저장되어 있다고 가정합니다. 만약 debugging 중에 call stack으로 Qt6Cored.dll 의 함수를 tracking 한다고 가정합시다. Debugging call stack을 하려는 중에 Qt dll 파일의 source를 확인하려고 하면 아래와 같이 find source 창이 뜹니다. 물론 so..
1. Widget 이란? Widget은 QT에서 GUI를 구성하는 가장 기본적인 컨트롤 유닛을 말한다. 모든 Widget은 parent-child 계층 관계를 갖게되어 있으며, parent widget에 속하지 않은 widget은 window라고 한다. Qt의 모든 widget은 화면에 어떻게 표시 될지 사용자와 어떤 상호작용을 할지에 대한 기능들을 제공한다. 2. Window 의 역할 Window는 데스크탑에서 task bar에 application으로 등록되어 관리된다. 하지만 앞서 말했듯이 parent가 없는 widget은 모두 window가 된다고 했다. 그렇기에 모든 window가 taskbar에 나타나는게 아니라 applicaiton 에 하나의 window만을 taskbar에 등록되도록 pri..