[ PySide6 ] 파이썬 GUI PySide6 사용을 위한 준비
들어가며
PySide6 라이브러리는
매우 강력한 파이썬 GUI 라이브러리입니다.
Tkitner에 비해 배우기가 상대적으로 어렵기는 하지만,
지원하는 위젯이나, 디자인 등이 Tkinter에 비해
매우 다양하고 기능도 더 좋습니다.
또한 코드를 작성해서 디자인을 할 수도 있지만,
별도의 디자인 툴이 제공되기 때문에
코드를 직접 작성해서 디자인할 요소가 적습니다.
준비하기
1) 가상환경 설정하기
먼저 가상환경을 하나 만들어 보겠습니다.
python -m venv pyside6_test
위 명령을 사용해 pyside6_test라는 가상환경을 하나 만들었습니다.
※ 가상환경 설정 및 사용방법 : 파이썬(Python) 가상환경을 사용하는 이유와 가상환경 만들기
아래 명령을 사용해 가상환경을 활성화해줍니다.
.\pyside6_test\scripts\activate
2) Pyside6 설치 및 확장프로그램 설치하기
Pyside6는 아래 명령을 통해 설치할 수 있습니다.
pip install pyside6
Pyside6의 디자인을 좀 더 편하게 하기 위해
VSCode에서 확장 프로그램을 하나 설치하겠습니다.
VSCode의 확장을 누르고
qt for python을 검색한 다음
설치를 해 줍니다.
Qt for Python 확장 프로그램은
Qt-Designer의 실행과 UI를 코드로 변환하는 과정을 손쉽게 해줍니다.
Qt-Designer 실행하기
Qt for Python 확장을 설치한 다음
VSCode 탐색기에서 마우스 오른쪽 버튼을 클릭하면
아래 그림과 같이 Create Qt UI File(designer) 메뉴가 나타납니다.
클릭하면 Qt-Designer가 실행됩니다.
확장 프로그램이 없다면
pyside6_test 가상환경 폴더 아래 Scripts 폴더 아래 pyside6-designer.exe 파일을
직접 실행해야 합니다.
Qt-Designer를 실행하면 아래와 같이 처음 화면이 나타납니다.
이번 블로그에서는 별 다른 작업 없이
윈도우만 생성하고 버튼 하나만 만든 다음
코드에서 실행하는 것까지 할 것이기 때문에
아래 그림과 같이 Main Window를 선택한 다음
생성을 눌러줍니다.
이제 아래와 같은 화면이 나타납니다.
왼쪽에는 지원하는 다양한 위젯이 있습니다.
만든 창의 크기를 마우스 드래그로 조절하고
버튼 위젯을 드래그하여 원하는 위치에 가져다 놓습니다.
위젯을 클릭한 후 mainwindow에 그리는 것이 아니라
드래그 앤 드롭으로 위젯을 옮겨서 배치하는 방식입니다.
먼저 Push Button을 하나 끌어서 배치하겠습니다.
그다음 파일 → 저장을 눌러 저장해 줍니다.
저장할 위치는 우리가 사용할 가상환경 폴더 안에 저장을 하면 됩니다.
다시 VSCode 화면으로 넘어옵니다.
VSCode 탐색기를 살펴보면
방금 만든 UI 파일과 함께
같은 이름의 파이썬 파일도 생성된 것을 확인할 수 있습니다.
Qt for Python 확장프로그램은
UI 파일을 만들고 저장하면 자동으로 파이썬 코드도 같이 생성해 줍니다.
파이썬 파일 뒤에 _ui가 붙는 이유는
확장프로그램의 기본 설정이 그렇게 되어 있기 때문입니다.
코드 실행하기
UI를 만들고 실행하는 방법은
두 가지가 있습니다.
두 가지 방법 중 생성된 파이썬 파일을 직접 불러와 사용하는 것이
속도가 더 빠르다고 합니다.
1) UI를 직접 불러와서 실행하기
UI 파일의 상대경로를 직접 입력하여
UI 파일을 로드한 다음 실행하는 코드입니다.
import sys
from PySide6.QtUiTools import QUiLoader
from PySide6.QtWidgets import QApplication
from PySide6.QtCore import QFile, QIODevice
if __name__ == "__main__":
app = QApplication(sys.argv)
ui_file_name = ".\pyside6_test/pyside6_test.ui"
ui_file = QFile(ui_file_name)
if not ui_file.open(QIODevice.ReadOnly):
print(f"Cannot open {ui_file_name}: {ui_file.errorString()}")
sys.exit(-1)
loader = QUiLoader()
window = loader.load(ui_file)
ui_file.close()
if not window:
print(loader.errorString())
sys.exit(-1)
window.show()
sys.exit(app.exec())
2) 생성된 파이썬 파일 사용하기
생성된 파이썬 파일을 import 한 다음 사용하는 방법입니다.
import sys
from PySide6.QtWidgets import QApplication, QMainWindow
from PySide6.QtCore import QFile
from pyside6_test_ui import Ui_MainWindow
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
마치며
이번 블로그에서는
PySide6를 사용해 간단하게 UI를 만들고
UI를 띄우는 것까지 작성해 보았습니다.
다음 블로그에서는 버튼을 클릭했을 때
동작하게 하는 방법을 작성해 보겠습니다.
[ 파이썬 관련 블로그 글 목록 ]
파이썬(Python) 블로그 목록