본문 바로가기
✨Python

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

by 김말자 2022. 6. 10.
728x90
728x90
BIG

 

큐티 디자이너를 키면 이런 화면이 뜬다.

 

그럼 이런 화면이 뜨는데 메인 윈도우를 클릭해준다

 

 

 

 

 

 

 

 

큐티 디자이너는 디자인을 한 후에 저장하는 형식인데 여기서 자유롭게 드래그해서 버튼을 만들 수 있다.

 

 

 

 

실제로 만든 모습이다.

 

 

이 버튼 이미지를 여러 형태로 구현할 수 있는데 오른쪽에 font를 이용해서 글꼴등을 바꿀 수 있다.

 

 

그 외 버튼이미지는 css문을 이용해서 바꿔 줄 수 있다.

 

저 창에 입력하면 바뀜을 알 수 있다.

 

 

실제로 바뀐모습

 

 

그 후 저장해서 끌어오면 잘 돌아가는 것을 볼 수 있다.

 

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)
      #  btn1.clicked.connect(self.btn1Click)


    def btn1Click(self):
        print("버튼1이 클릭됨!!!")

# 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_() 메인함수처럼 끝점

그리고나서 파이썬에서 uic를 임포트해주고

 

유아이씨경로를 로드해주면 잘 불러와지는것을 볼 수 있다ㅏ.

 

 

#   btn2.move(200,50)

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

오브젝트 이름을 지정해주면 잘돌아가는것을 확인할 수 있다.

728x90
반응형
BIG

댓글