일단 기본적으로 Qt Designer설치하시고 실행해 줍니다.
(Qt Designer설치 방법은 나중에 블로그 쓸 예정)
(Qt Designer 설치 방법 아래 링크 참조)
https://all-share-source-code.tistory.com/78
파일 생성
그리고 만약 새로 만드는 과정이면 Main Windows 하나 만들어 줍니다.(이미지 참조)
그다음 원하는 위치에 일단 저장해 줍니다.
(저는 다운로드에다가 하겠습니다.)
저장한 폴더 가서 승격할 .py를 하나 만들어 줍니다.
(저는 QGUI_Custom.py라고 만들겠습니다. [다음 블로그에 쓸 파일입니다.])
Qt Designer승격 위젯 추가
다시 Qt Designer으로 넘어옵니다.
우클릭하시면 '승격된 위젯...'이라고 있습니다.
클릭해 줍니다. (이미지 참조)
'승격된 위젯...'클릭하시면 아래 이미지와 같이 나올 겁니다.
그리고 '승격된 클래스' 이름에 선언된 클래스 명을 적어 줍니다.
「저 같은 경우 ClickableSpinBox라고 정의했습니다.
그리고 '기반 클래스'는 QSpinBox입니다.(아래 이미지 참조)」
마지막으로 '헤더 파일'은 파일 이름을 적으시면 되는데
'승격된 클래스'에 이름과 동일하게 작성되면서 마지막에 '.h'가 자동으로 붙지만 상관하지 말고
이름을 모두 삭제 후('.h' 제외) 저희가 만든 QGUI_Custom.py에 QGUI_Custom만 입력해주시면 됩니다.
그리고 추가 버튼 클릭합니다.
그럼 이미지와 같이 추가된 걸 볼 수 있습니다.
추가된 승격 위젯 사용
이젠 사용을 해봐야겠지요
닫기 버튼을 눌러 빠져나옵니다.
그리고 저 같은 경우 QSpinBox기반이기 때문에
QSpinBox에서만 사용이 됩니다.
그래서 QSpinBox 만들어 주시고
우클릭 -> '다음으로 승격 ▶'(2개가 생겼을 겁니다 [이미지 참조]) -> ClickableSpinBox클릭
그럼 승격된 것을 볼 수 있습니다.
이로써 커스텀한 위젯을 Qt Designer 사용할 수 있으며,
해당 '*.ui'를 코드에서 불러올 때에도 커스텀한 Class를 사용할 수 있게 됩니다.
추가 내용
코드에서 구성 방법
코드를 구성하는 방법입니다.
위와 같이 커스텀 한 코드가 있다면 아래 이미지와 같이 하시면 됩니다.
1. 저 같은 경우 QGUI_Custom.py안에 커스텀한 내용이 있기 때문에 from QGUI_Custom import *해줍니다.
2. Qt Designer에 승격한 스핀 박스 이름을 self.spinBox:ClickableSpinBox라고 정의해 줍니다.
(뒤에 :ClickableSpinBox을 사용하는 이유는 자동 완성을 하기 위해서입니다.)
참고 : https://all-share-source-code.tistory.com/65
3. 해당 이벤트를 발생시켜 정상 작동하는지 확인합니다.
그럼 커스텀한 위젯이 잘되는 것을 볼 수 있습니다.
(터미널 창 확인)
폴더 안 커스텀 파일이 있을 경우
만약 폴더 안에 커스텀한 코드가 있을 경우에 해결 방법입니다.(아래 이미지는 예시입니다.)
일단 먼저 블로그에서 '승격된 위젯...'열었던 곳으로 이동해 줍니다.
그리고 헤더 파일 쪽에서 폴더 이름만 추가하시면 되겠습니다.(이미지 참조)
'.../'(슬래쉬)는 필수입니다.
마지막으로 코드 부분 쪽에서도
위 이미지와 같이 from CUSTOM.QGUI_Custom import *로 변경해주시면 해결됩니다.