Welcome to Jiyuniverse

[Pyside6] 파일 열기 버튼, 파일 경로 나타내기 구현 본문

Python/GUI Framework

[Pyside6] 파일 열기 버튼, 파일 경로 나타내기 구현

JJiiyun 2025. 1. 22. 14:19

2024-01-05에 작성된 글입니다. (블로그 이전)

 

 

예전 연구실 선배가 제작하고 가신 임베디드 시스템 데이터를 시각화하는 GUI를 다른 프레임워크를 사용하여 제작하기로 했습니다.

자바, C가 익숙해서 파이썬은 기초 문법만 알고 사용해본 적은 딱히 없었어요

 

pyside6 기초만 보고 무작정 시작했습니다.

pip install pyside6
pip install pyside6-designer

 

 

PySide6 designer를 사용하면 간단히 위젯을 끌어와서 레이아웃을 배치할 수 있어요.

PyQt도 designer Tool이 있는 걸로 알고 있습니다.

(venv-PySide) PS C:\Users\ㅇㅇㅇ\PycharmProjects\PySide> pyside6-designer

 

 

pyside6-designer를 사용해서 기본적인 레이아웃들을 배치했고 ui 파일로 저장하기를 눌렀습니다.

 

.py 파일에 슬롯(이벤트)을 작성했었는데요 레이아웃과 연결시키는 작업을 하고 싶었는데 생각대로 되지 않았어요!

구글링해 보니 제가 작업하는 파일과 ui 파일을 연결해줘야 했어요.

 

1. 터미널에서 cd 명령어를 통해 ui 파일이 저장된 경로로 이동하여 ui 파일을 .py 파일로 변환해줍니다.

(venv-PySide) PS C:\Users\ㅇㅇㅇ\PycharmProjects\PySide> pyside6-uic mainwindow.ui -o mainwindow.py

해당 경로에 .py 파일이 생성된다.

 

2. 이벤트와 레이아웃을 연결할 파일(main.py)를 생성하여

ui -> py로 변환한 코드(mainwindow.py)에서 import 된 모듈을 그대로 복사 + 붙여넣기 해줍니다.

 

 

 

3. https://jy-tblog.tistory.com/26 를 참고하여 main.py에 ui를 연결하는 작업을 진행하였습니다.

 

[ PyQt5 ] Qt Designer로 ui 파일 만들기, 연결하기 / 버튼과 함수 연결하기

Qt Designer? PyQt로 GUI 프로그래밍을 할 때 쉽게 레이아웃을 편집할 수 있도록 도와주는 편집기. 아나콘다를 설치하면 PyQt5와 함께 자동으로 설치됨 Qt Designer 없이 파이썬 코드만으로도 GUI 프로그래

jy-tblog.tistory.com

 

env = os.environ
env.setdefault("C:/Users/ㅇㅇㅇ/PycharmProjects/PySide", os.getcwd())
generated_class, base_class = loadUiType("mainwindow.ui")

 

 

openfile_btn [파일 열기] 를 클릭 시 filename [네모 박스]에 파일 이름이 뜨는 코드를 구현했습니다.

class UI(base_class, generated_class):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

        self.openfile_btn.clicked.connect(self.slot_fileopen)

	
    def slot_fileopen(self):
        fname = QFileDialog.getOpenFileName(self, 'Open file', './')
        self.filename.setText(fname[0])



if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = UI()
    window.show()
    sys.exit(app.exec())

 

 

파일 선택하면 경로 이름이 text Box에 보이게 구현

 

이 부분에서 파일 열기 버튼의 변수명(object name)은 'openfile_btn'이고, 그 옆 text edit의 변수명은 'filename' 입니다.

(pyside6-designer에서 ui를 만들 때 각 요소에 우클릭을 하면 object name을 설정할 수 있다.)

요렇게.

 

 

QFileDialog를 이용해 파일의 이름을 불러왔어요.

 

fname에는 튜플이 저장되는데요, fname[0]은 파일 경로이고 fname[1]은 확장자라고 하네요.

 

 

 

참고 블로그 https://martinii.fun/156

 

1. PySide6의 QtDesigner를 사용해봅시다.

QtDesigner 실행해보기 pip를 통해 PySide6를 설치했다면, 파이썬폴더\Library\bin이나 파이썬폴더\Lib\site-packages\PySide6 폴더 안에 designer.exe(또는 pyside6-designer.exe)가 같이 설치되어 있습니다. 귀찮다면 시

martinii.fun

 

https://jy-tblog.tistory.com/26

 

[ PyQt5 ] Qt Designer로 ui 파일 만들기, 연결하기 / 버튼과 함수 연결하기

Qt Designer? PyQt로 GUI 프로그래밍을 할 때 쉽게 레이아웃을 편집할 수 있도록 도와주는 편집기. 아나콘다를 설치하면 PyQt5와 함께 자동으로 설치됨 Qt Designer 없이 파이썬 코드만으로도 GUI 프로그래

jy-tblog.tistory.com