본문 바로가기
개발/Python

[py] 파이썬 gui (ft. pyqt5 설치, 기본 세팅, Qt designer 설치)

by 코딩하는 갓디노 2022. 10. 8.

[py] pyqt5 설치, 기본 세팅, Qt desinger 설치

 

PyQt

  • 파이썬 gui 라이브러리

 

Qt designer 설치

  • Qt designer는 PyQt 디자인 편집기 
  • 구글에서 qt desinger download 검색하여 다운로드

 

Mac 오류 해결 방법

 

개발자를 확인할 수 없기 때문에 열 수 없습니다. 알림창  해결 방법
- 시스템 환경설정 -> 보안 및 개인 정보 보호
- 다음에서 다운로드한 앱 허용 -> 확인

Qt designer 설치 후 화면이 이상할때
Preferences -> Appearance -> User Interface Mode -> Docked Window


pyqt5 설치

pip install pyqt5 #window
pip3 install pyqt5 #mac

 

pyqt5 기본 세팅

from PyQt5.QtWidgets import *
from PyQt5 import uic
import sys

UI_PATH = '디자인파일경로'

class MainDialog(QDialog):
    def __init__(self):
        QDialog.__init__(self, None)
        uic.loadUi(UI_PATH, self)

QApplication.setStyle('fusion')
app = QApplication(sys.argv)
main_dialog = MainDialog()
main_dialog.show()

sys.exit(app.exec_())

 

Qt designer  자주 사용하는 ui

  • label(라벨)
  • line edit(인풋박스)
  • push button(버튼)
  • vertical layout(수직정렬 레이아웃)

 

pyqt5 기본 사용법

from PyQt5.QtWidgets import *
from PyQt5 import uic
import sys

UI_PATH = '디자인파일경로'

class MainDialog(QDialog):
    def __init__(self):
        QDialog.__init__(self, None)
        uic.loadUi(UI_PATH, self)

QApplication.setStyle('fusion')
app = QApplication(sys.argv)
main_dialog = MainDialog()
main_dialog.show()

sys.exit(app.exec_())

 

버튼 클릭 이벤트

self.객체이름.clicked.connect(self.함수명)

 

입력창 텍스트값 추출

self.객체이름.text()

   

사용 예시

from PyQt5.QtWidgets import *
from PyQt5 import uic
import sys

UI_PATH = '디자인파일경로'

class MainDialog(QDialog):
    def __init__(self):
        QDialog.__init__(self, None)
        uic.loadUi(UI_PATH, self)
        
        #1. 버튼 클릭 이벤트
        #self.객체이름.clicked.connect(self.함수명)
        #self.login_btn.clicked.connect(self.printfn)
        
        def printfn(self): 
        print('버튼 클릭됨')
        #2. 입력창 텍스트값 추출
        #self.객체이름.text()
        id = self.input_id.text()
        print(id)
       
QApplication.setStyle('fusion')
app = QApplication(sys.argv)
main_dialog = MainDialog()
main_dialog.show()

sys.exit(app.exec_())
반응형

댓글