본문 바로가기
✨Python

[Python/파이썬] 파이썬으로 ui 윈도우 어플리케이션 구현하기 4 Qtdesigner

by 김말자 2022. 6. 10.
728x90
728x90
BIG
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5 import uic

# 클래스 위에 먼저 불러와야함
form_class = uic.loadUiType("ui/mywin.ui")[0]

#uic는 고치기 힘듬(잘꼬이는 아이임)
#큐메인윈도우클래스를 상속을 받았음 // 그후 초기화자를 만들었음 //super 부모클래스의 생성자를 불러올 수 있도록 하는거임
class MyWindow(QMainWindow, form_class):
    def __init__(self):
        #super().__init__() #부모클래스의 초기화자를 호출(안하면에러)
        p = super()
        p.__init__()
        self.setupUi(self)
  #      self.setGeometry(300, 500, 500, 600) 디자인 클래스가 있기때문
        self.setWindowTitle("Hello World")
        self.setWindowIcon(QIcon("hi.png"))

#큐푸시버튼클래스 안에 btn1객체를 만듬 /  그 후 붙일 곳을 정해야되는데 그게 self임
  #      btn1 = QPushButton("버튼1", self)
   #     btn1.move(30,50)
    #    btn2 = QPushButton("버튼2", self)
     #   btn2.move(200,50)

        self.btn1.clicked.connect(self.btn1Click)
        self.btn2.clicked.connect(self.btn2Click)

    def btn1Click(self):
        self.label1.setText("버튼1이 클릭됨")
#셋텍스트로 인해 레이블이 셋텍스트안에 글씨로 변환함
        print("버튼1이 클릭됨!!!")

    def btn2Click(self):
        self.label1.setText("버튼2이 클릭됨")
        print("버튼2이 클릭됨!!!")

# Q mainWindow는 판떼기라고 생각하고 그 위에 큐위젯을 올려 만드는것임
#맴버변수는 항상 self가 붙음 자바의 this랑 비슷하다고 보면됨
#set세터임 // setGeometry 가로,세로 초기값, 그리고 높이와 길이값을 지정해줌
#setWindowTitle 타이틀 이름 바꿀 수 있음
#setWindowicon 아이콘 지정해놓을 수 있음 //큐아이콘은 따로 임포트해야됨
#clicked 클릭을 했을때 일하게 해주는 메써드
#connect 버튼일이 클릭됨이라고 메써드가 발생함
#위젯을 올려야됨 새로운 버튼1이 클릭됨을 콘솔창이 아닌 새로운창에 띄우기위해

app = QApplication(sys. argv)

myWin = MyWindow()

myWin.show()

app.exec_()



#초기화자는 init로 고정되어있음 반드시 __init__로 해야됨
# app = QApplication(sys. argv) 메인함수처럼 시작점
#  이사이에 내용을 넣어줌
# app.exec_() 메인함수처럼 끝점

 

 

 

레이블도 만들어 줬습니다.

 

 

그다음 오브젝트 네임을 제대로 짓고..

 

레이블을 지정해줄 수 있는데

파이썬이 레이블을 지정을 못하니까

PyQt5 Tutorial - 파이썬으로 만드는 나만의 GUI 프로그램 - WikiDocs

 

PyQt5 Tutorial - 파이썬으로 만드는 나만의 GUI 프로그램

## 소개 - 한국어로 되어있는 PyQt5 자료가 많지 않아서 아래의 여러 튜토리얼과 강의의 예제를 정리하며 시작했습니다. - **PyQt5의 설치**부터 시작해서, ...

wikidocs.net

https://doc.qt.io/qtforpython-5/PySide2/QtWidgets/QLabel.html?highlight=qlabel#PySide2.QtWidgets.PySide2.QtWidgets.QLabel.setText 

 

QLabel — Qt for Python

QLabel The QLabel widget provides a text or image display. More… Detailed Description QLabel is used for displaying text or an image. No user interaction functionality is provided. The visual appearance of the label can be configured in various ways, and

doc.qt.io

 

 

들어가서 배울 수 있다.

 

    def btn1Click(self):
        self.label1.setText("버튼1이 클릭됨")
#셋텍스트로 인해 레이블이 셋텍스트안에 글씨로 변환함

 

잘 돌아가는 것을 볼 수 있다.

 

 

레이블이아닌 다른곳에도 할 수 잇다.

def btn1Click(self):
    self.label1.setText("버튼1이 클릭됨")
    self.lineEdit1.setText("버튼1눌렀다니 반갑습니다")

 

잘 되는 것을 알 수 있다.

 

만약에 네임을 잘 못쓰면 튕기는 현상이 발생하니

 

그때는 에러라고 생각하면 된다.

728x90
반응형
BIG

댓글