UI 생성

Siwoo Pak·2024년 2월 27일
0
post-thumbnail
  1. Qt Designer
    -> PySide에 있는 gui프로그램
    -> 레이아웃과 버튼 등을 드래그해서 gui구성을 쉽게 할 수 있음
    1-1. 실행
    -> 맥의 경우, 터미널에서 'Designer'를 입력하면 실행
    -> 윈도우의 경우, 설치된 경로에서 'designer.exe' 실행
  • 맥에서 실행화면

  • 윈도우에서 실행화면

    1-2. 새 폼 생성

  • 초기화면(맥)

  • 생성 버튼 클릭시 화면(MainWindow)

  • 이 GUI에서 최상단이 되는 게 MainWindow

  • MainWindow의 구성

  • 속성편집기

  1. Python과 UI파일 연동
    2-1. 소스코드
import sys
import os
from PySide6 import QtUiTools, QtGui
from PySide6.QtWidgets import QApplication, QMainWindow

loader = QtUiTools.QUiLoader()

# gui화면 설정 관련된 클래스
class MainView(QMainWindow):
# 프로그래밍언어들에선 클래스를 만들 때 초기화 메서드가 들어감.
    def __init__(self):
        super().__init__()
        self.setupUI()
# Designer 앱으로 만들어진 ui파일 읽어오고,
# gui의 타이틀, 아이콘, 크기 등의 설정
    def setupUI(self):
        global UI_MAIN
        UI_MAIN = loader.load(resource_path("layout.ui"))

        self.setCentralWidget(UI_MAIN)
        self.setWindowTitle("UI_TEST")
        self.setWindowIcon(QtGui.QPixmap(resource_path("ani.jpg")))
        self.resize(600, 500)
        self.show()
# MainView 클래스 끝

# 파일경로 함수
# pyinstaller로 원파일로 압축할때 경로 필요함
# 다른 컴퓨터로 실행시 경로가 다를 수 있기에 경로 설정이 필요함.
def resource_path(rel_path):
    if hasattr(sys, '_MEIPASS'):
        return os.path.join(sys._MEIPASS, rel_path)
    return os.path.join(os.path.abspath("."), rel_path)

# 메인(앱 실행코드)
if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = MainView()
    # main.show()
    sys.exit(app.exec())
profile
'하루를 참고 인내하면 열흘을 벌 수 있고 사흘을 참고 견디면 30일을, 30일을 견디면 3년을 벌 수 있다.'

0개의 댓글