본문 바로가기
코딩취미/Python

QFileDialog 특정폴더를 기본 경로 설정하기

by 브링블링 2025. 2. 21.
반응형

PySide6에서 QFileDialog.getExistingDirectory를 사용한 다운로드 기본 경로 설정

📖 소개

PySide6에서 QFileDialog.getExistingDirectory를 사용할 때, 특정 폴더(예: 다운로드 폴더)를 기본 경로로 설정하는 방법을 알아보겠습니다. 기본적으로 폴더 선택 대화상자는 시스템에서 마지막으로 사용한 폴더를 열지만, 특정 경로(예: 다운로드 폴더)를 기본으로 열도록 설정할 수 있습니다.

이번 글에서는 운영체제에 관계없이 다운로드 폴더를 기본 경로로 지정하는 방법을 설명하고, 실제 코드 예제를 제공하겠습니다.


📌 QFileDialog.getExistingDirectory란?

QFileDialog.getExistingDirectory는 사용자가 폴더를 선택할 수 있도록 하는 대화상자를 제공합니다.
파일 선택 다이얼로그와 다르게, 파일이 아니라 폴더를 선택하는 기능을 가지고 있습니다.

🛠️ 기본 사용법

QFileDialog.getExistingDirectory(parent, caption, directory)
매개변수 설명
parent 부모 위젯 (일반적으로 self)
caption 대화상자의 제목 (예: "폴더 선택")
directory 기본으로 열릴 폴더 경로 (예: C:/Users/사용자명/Downloads)

 

이제 다운로드 폴더를 기본 경로로 설정하는 방법을 알아보겠습니다.


📌 다운로드 폴더를 기본 경로로 설정하는 코드

예제 코드

from PySide6.QtWidgets import QApplication, QFileDialog, QMainWindow, QPushButton
from PySide6.QtCore import QStandardPaths

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QFileDialog - 다운로드 폴더 기본 경로")
        self.setGeometry(300, 200, 400, 200)

        button = QPushButton("폴더 선택", self)
        button.clicked.connect(self.select_directory)
        button.setGeometry(100, 70, 200, 40)

    def select_directory(self):
        # 다운로드 폴더 경로 설정
        download_path = QStandardPaths.writableLocation(QStandardPaths.DownloadLocation)
        
        # 다운로드 폴더를 기본 경로로 설정하여 폴더 선택 다이얼로그 실행
        selected_directory = QFileDialog.getExistingDirectory(self, "폴더 선택", download_path)

        if selected_directory:
            print(f"선택된 폴더: {selected_directory}")

if __name__ == "__main__":
    app = QApplication([])
    window = MainWindow()
    window.show()
    app.exec()
반응형

📌 코드 설명

🔹 1. QStandardPaths.writableLocation(QStandardPaths.DownloadLocation) 사용

download_path = QStandardPaths.writableLocation(QStandardPaths.DownloadLocation)

 

이 코드 한 줄로 운영체제에 관계없이 다운로드 폴더 경로를 가져올 수 있습니다.

운영체제 다운로드 폴더 경로
Windows C:/Users/사용자명/Downloads
macOS /Users/사용자명/Downloads
Linux /home/사용자명/Downloads

 

이제, 사용자가 폴더를 선택할 때 기본으로 다운로드 폴더가 열립니다.


🔹 2. QFileDialog.getExistingDirectory로 폴더 선택 다이얼로그 열기

selected_directory = QFileDialog.getExistingDirectory(self, "폴더 선택", download_path)
  • "폴더 선택" → 다이얼로그의 제목
  • download_path → 다운로드 폴더를 기본 경로로 설정

🔹 3. 선택한 폴더 출력

if selected_directory:
    print(f"선택된 폴더: {selected_directory}")
  • 사용자가 폴더를 선택하면, 선택된 폴더의 경로를 콘솔에 출력합니다.

📌 실행 화면

  1. "폴더 선택" 버튼을 클릭하면, 다운로드 폴더가 기본으로 표시된 폴더 선택 창이 열립니다.
  2. 사용자가 원하는 폴더를 선택하고 확인(OK) 버튼을 클릭하면, 선택한 폴더의 경로가 출력됩니다.

📌 활용 방법

이 코드를 응용하면 다양한 기능을 추가할 수 있습니다.

특정 하위 폴더를 기본 경로로 설정
예: download_path = f"{download_path}/프로젝트"
→ 다운로드 폴더 안의 "프로젝트" 폴더를 기본 경로로 설정할 수 있습니다.

선택한 폴더를 저장하고 다음 실행 시 기본 경로로 설정
예: QSettings를 사용하여 마지막으로 선택한 폴더를 저장하고, 다음 실행 시 기본 경로로 설정할 수 있습니다.

반응형