본문 바로가기
무모한 도전-주식 인공지능 만들기

pytrader에서 폴더경로를 지정하는 방법

by 인터넷떠돌이 2018. 12. 11.
반응형

안녕하세요?


이번 포스팅에서는 pytrader에서 일일히 데이터 베이스 파일을 저장하기 위해서 항상 경로를 코드를 수정해서 지정해야 했는데, 그러지 말고, Qt Designer로 만든 인터페이스 상에서 어떻게 처리를 할 수 없는지에 대해서 한번 알아 보도록 했으며, 그 성공한 결과를 이번 포스팅에서 올리고자 합니다.



먼저 위 스크린샷처럼 새로운 버튼을 만들어서 이 버튼의 이름을 저장 경로지정이라고 이름지어 주도록 합니다. 그리고 나서 다음의 작업으로 들어가 보도록 합니다.



다음으로는 시그널/슬롯 편집 메뉴를 Qt Designer에서 불러 오는 것으로 새로운 슬롯을 만들어 주도록 합니다. 이 슬롯은 나중에 새로 추가한 버튼을 누를 때 실행이 될 파이썬 스크립트 상의 메소드 이름으로 바로 연결이 됩니다.



그리고 나서 시그널/슬롯 편집기에서 위 스크린샷처럼 새로 추가한 버튼 pushButton_4에서 clicked()라는 이벤트가 발생하면 folderSelectSignal()이 실행되라는 식으로 작업을 해 보도록 합니다.



그리고 나서 먼저 작업을 하기 위해서 PyQt5.QtWidgets에 있는 QFileDialog를 가지고 오도록 합니다. 이 항목을 굳이 import해야 하나 하는 생각이 들기는 하지만, 체감상으로는 일단 에러가 발생한 기분이 들기는 했습니다.




그리고 필요가 있어서 os를 import해 보도록 합니다.



다음으로는 Qt Designer에서 설정해 둔 것처럼 folderSelectSignal(): 이라는 메소드를 만들어 주도록 합니다. 이 메소드에서는 위 스크린샷처럼 QFileDialog에 있는 GetExistingDirectory()라는 함수를 가지고 오도록 합니다. 이 함수는 바로 폴더를 선택하는 창을 띄우게 해 주며, 이후에 아래에 있는 os.path.realpath(QFileDialog.getExistingDirectory())라는 형식으로 진짜 실제하는 폴더경로를 지정할 수 있도록 해 줍니다.



그리고 일단 pytrader를 실행 시켜 보도록 합니다. 이렇게 하는 것으로 일단 프로그램의 실행 자체에는 영향을 주지 않는 다는 것을 확인할 수 있었습니다.



마지막으로 경로를 지정하는 버튼을 눌렀을 때, 위 스크린샷처럼 폴더를 선택할 수 있는 다이얼로그가 뜨는 것을 확인할 수 있었습니다. 이렇게 하는 것으로 일단 일련의 작업은 상대적으로 쉽게 완료가 되기는 되었습니다. 하지만 여전히 문제라면 문제가 남아 있는 것이, 경고 메세지를 띄워서 잘못 입력하는 것으로 매번 프로그램이 종료되어서 다시 실행시키는 문제는 어떻게 할 수 없는지에 대한 생각이 듭니다.

반응형