공유 블로그

이방법은 굉장히 위험한 방법이며,
파이썬을 재설치 해야될수도 있습니다.
주의해서 사용해주시기 바랍니다.

 

설명

아래 이미지와같이 PyQt5에서 제공하는 cliced 다음 connect 부분같이,

있는데도 불구하고 인식하지 못할때 사용하는 임시적인 방법 입니다.

 

해결방법

일단 print를 찍어봐서 어느 클래스에서 사용되는지 알아야 됩니다.

위 이미지와 같이 print를 찍어보면

PyQt5.QtCore.pyqtBoundSignal에서 있는것을 볼수 있습니다.

 

그다음 clicked에 참조된 위치에 들어갑니다.

(아래이미지는 vscode에서 ctrl키 누른 상태에서 마우스를 올리면 참조된 위치로 이동합니다.)

VSCode의 Ctrl누른 상태에서 마우스 올림

 

그리고 참조된 위치로 이동해 보시면 

이런식으로 함수또는 변수들이 쭉 나열된것을 볼수 있습니다. (노란색 부분)

(QPushButton같은 경우는 여기[QAbstractButton class안, {노란색부분}]에 있는 모든 함수들을 사용이 가능합니다.)

 

그리고 아까 print로 확인한 클래스부분중 맨뒤부분을 복사해서 찾기 합니다.(아래 이미지 참조)

 

그러면 QtCore.pyqtBoundSignal가 정의 되어 있는 부분이 있습니다.

이과정을 왜하냐면,

해당 임포트를 from QtCore.pyqtBoundSignal으로 구성 했기 때문에

해당 파일에서는 저런식으로 구성할수 있습니다.

「만약 자신이 임이로 import하면 그대로 사용하실수 있습니다.

  하지만 install한 모듈 파일은 거희 건들지 않는것을 추천 드립니다... 」

 

그리고 QtCore.pyqtBoundSignal을 복사 해줍니다.

 

다음 아까 참조된 clicked에 가보시면,

'def clicked(self, checked: bool = ...) -> None: ...'

이라고 되어 있는부분에 엔터를 치고

해당 변수명:QtCore.pyqtBoundSignal라고 입력해줍니다. (이미지 참조)

(clicked:QtCore.pyqtBoundSignal)

그다음 저장하고 모든창닫고(저는 VSCode) 다시 열어봅니다.

 

그럼 아래 이미지처럼 자동완성을 사용할수 있게 됩니다.

 

코드가 더러워지지만 좀더 안전한 방법

더보기

1. 함수를 따로 만들어서 자동완성 사용 방법

이 방법은 일단 def를 하나 만들어 줍니다.

(return으로 clicked 만들어주세요)

그리고 마지막에  -> QtCore.pyqtBoundSignal를 넣어 줍니다.(아래 이미지 참조)

그리고 함수를 쓰면 자동완성이 됩니다. 

 

--- 추가내용 ---

def 에서 '->' type 지정시 색 이상 증상 해결 방법도 블로그 하였습니다.

아래 링크 참조 하시면 되겠습니다.

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

 

python 함수에 타입(Hints)지정시 색 이상하게 변하는 증상 해결방법

vscode에서 python 함수에 타입(Hints)지정시 색 이상하게 변하는 증상을 볼수 있습니다.(이미지 참조) 이에 대한 해결 방법을 알려드리도록 하겠습니다. 이방법은 임시적인 방법이며, 공식적으로 알

all-share-source-code.tistory.com


2.isinstance함수를 써서 자동완성 사용 방법

「하지만 이방법은 connect의 참조인 QtCore.pyqtBoundSignal는 안먹히네여;;

  아마 함수안 함수는 안도는것같고 변수안 함수만 되는거 같습니다.. 다른 예시로 설명하겠습니다. 」

 

이방법은 파이썬에 제공하는isinstance함수를 사용하는 방법 입니다.

 

 이와 같이 변수의 pos가 있는데도 불구하고 없다고 나옵니다..

그럼 여기서 아까 '해결방법' 설명과 같이 해당 참조되는 곳을 알아야됩니다.

일단 알았다고 가졍하고 

if isinstance(event,QMouseEvent):를 사용하면 됩니다.(아래 이미지 참조)

그럼 없던 pos가 생기게 되고 자동완성도 되는것을 볼수가 있습니다.

 

공유하기

facebook twitter kakaoTalk naver band kakaostory Copy URL