본문 바로가기

IT/PyQt5

[PyQt5] 폴더 내 파일 선택하는 버튼 만들기

PyQt5를 사용하다 보면 파일 위치를 선택하여 어떤 실행을 누르고 싶을 때가 많이 있습니다.

예를 들어 특정 데이터가 저장된 .csv 파일을 가져와서 데이터를 연산하고자 할 때, 사진을 가져와서 편집을 할 때 등등...

 

그럴 때 대부분 책에서는 python 코드로 작성하여하는 경우가 많습니다.

(초보분들이 주로 하는방법인데 제가 생각했을 때는 더 어려운 거 같아요.)

 

PyQt5 를 이용하다 보면 코드로 UI 를 만드는 것보다 Qt designer을 이용하여 UI를 직접 변경하는 게 좋습니다.

 

최종적인 형태는 아래 사진과 같습니다.

 

 

그럼 천천히 따라해보시죠~

 

 

 

- pip install PyQt5    : PyQt5를 설치합니다.

- cmd -> (아나콘다 이용하시는 분들께서는 ) conda activate "프로젝트 이름"  -> designer 입력

- Qt designer 가 실행됩니다. 

 

여기까지는 다들 아실 테고 다음부터 집중하시죠. 

 

 

1. 위젯 상자에서 Buttons (항목) -> "Push Button" 드래그해서 가져오기 

2. "Push Button"을 "파일 선택"이라고 이름을 변경합니다. (이름은 마음대로 쓰셔도 됩니다.)

 

3. 여기서 유심해 봐야 할 게 있습니다. objectName : pushButton ("Push Button"와 다름 ) 이 python에서 쓰는 변수입니다. 여기서 다른 걸로 변경해도 좋고 그대로 사용하셔도 됩니다. 여기서는 그대로 써보겠습니다.

 

 

4. 파이썬 파일과 UI를 연동해보겠습니다.

( uic.loadUiType("tistory.ui")[0] 부분은 다음에 따로 다뤄드리겠습니다.) 

위에서 objectName : pushButton 을 그대로 initUI 함수 밑에 적어둡니다.

 

 

self.pushButton.clicked.connect(self.fileopen)   :  UI에서 pushButton라는 함수를 클릭하면 파이썬 파일 내 fileopen 함수를 연결시킨다.

 

fileopen이라는 함수를 따로 아래처럼 정의해줍니다.

filename = QtWidgets.QFileDialog.getOpenFileName(self, 'Open File'

 

라고 선언해주고, 다른 함수에서 filename을 가져다 쓰면 됩니다!!

print(filename)을 하면 알다시피 tuple 형태로 주소를 리턴해줍니다. 

 

 

 

 

 

PushButton 을 클릭했을 때

 

 

UI 화면과 코드를 연결하는 연습을 많이 하는 게 좋습니다! 

 

'IT > PyQt5' 카테고리의 다른 글

[PyQt5] 탭(tab) 순서 설정하기  (0) 2020.12.09
[PyQt5] 비밀번호(password)를 마스킹 처리 하기  (0) 2020.12.01