공유 블로그

일단 기본적으로 Qt Designer설치하시고 실행해 줍니다.

(Qt Designer설치 방법은 나중에 블로그 쓸 예정)

(Qt Designer 설치 방법 아래 링크 참조)

https://all-share-source-code.tistory.com/78

 

가장 쉬운 Qt Designer 설치 방법

준비물 VC_redist.x64.exe : 지원되는 최신 Visual C++ 재배포 가능 패키지 다운로드 | Microsoft Learn x64 비트 : https://aka.ms/vs/17/release/vc_redist.x64.exe python : Download Python | Python.org 해당 버전에 맞는 프로그램

all-share-source-code.tistory.com

 

 

파일 생성

그리고 만약 새로 만드는 과정이면 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

 

python 다른건 자동 완성 되는데 특정 함수 또는 변수만 자동 완성 안될시 임시로 해결 방법

이방법은 굉장히 위험한 방법이며, 파이썬을 재설치 해야될수도 있습니다. 주의해서 사용해주시기 바랍니다. 설명 아래 이미지와같이 PyQt5에서 제공하는 cliced 다음 connect 부분같이, 있는데도 불

all-share-source-code.tistory.com

3. 해당 이벤트를 발생시켜 정상 작동하는지 확인합니다.

 

그럼 커스텀한 위젯이 잘되는 것을 볼 수 있습니다.

(터미널 창 확인)

 

폴더 안 커스텀 파일이 있을 경우

만약 폴더 안에 커스텀한 코드가 있을 경우에 해결 방법입니다.(아래 이미지는 예시입니다.)

예시

일단 먼저 블로그에서 '승격된 위젯...'열었던 곳으로 이동해 줍니다.

 

그리고 헤더 파일 쪽에서 폴더 이름만 추가하시면 되겠습니다.(이미지 참조)

'.../'(슬래쉬)는 필수입니다.

 

마지막으로 코드 부분 쪽에서도

위 이미지와 같이 from CUSTOM.QGUI_Custom import *로 변경해주시면 해결됩니다.

 

공유하기

facebook twitter kakaoTalk naver band kakaostory Copy URL