PYTHON 프로그래밍

본문 바로가기
사이트 내 전체검색


PYTHON 프로그래밍
PYTHON 프로그래밍

1. PyQt5 기초

페이지 정보

작성자 관리자 댓글 0건 조회 1,698회 작성일 22-06-25 14:16

본문

1. PyQt5 기초

실습 >창 띄우기


# -*- coding: utf-8 -*-

# 창 띄우기


import sys

from PyQt5.QtWidgets import QApplication, QWidget



class MyApp(QWidget):


    def __init__(self):

        super().__init__()

        self.initUI()


    def initUI(self):

        self.setWindowTitle('My First Application')

        self.move(300, 300)

        self.resize(400, 200)

        self.show()



if __name__ == '__main__':

   app = QApplication(sys.argv)

   ex = MyApp()

   sys.exit(app.exec_())


1.PNG



setWindowTitle() 메서드는 타이틀바에 나타나는 창의 제목을 설정합니다.

move() 메서드는 위젯을 스크린의 x=300px, y=300px의 위치로 이동시킵니다.

resize() 메서드는 위젯의 크기를 너비 400px, 높이 200px로 조절합니다.

show() 메서드는 위젯을 스크린에 보여줍니다.


모든 PyQt5 어플리케이션은 어플리케이션 객체를 생성해야 합니다.





실습> 어플리케이션 아이콘 넣기


어플리케이션 아이콘은 타이틀바의 왼쪽 끝에 보여질 작은 이미지입니다. 

우선 폴더 안에, 아이콘으로 사용할 이미지 파일을 저장해 둡니다.


# -*- coding: utf-8 -*-

# 어플리케이션 아이콘 넣기


import sys

from PyQt5.QtWidgets import QApplication, QWidget

from PyQt5.QtGui import QIcon



class MyApp(QWidget):


  def __init__(self):

      super().__init__()

      self.initUI()


  def initUI(self):

      self.setWindowTitle('Icon')

      self.setWindowIcon(QIcon('icon.png'))

      self.setGeometry(300, 300, 300, 200)

      self.show()



if __name__ == '__main__':

  app = QApplication(sys.argv)

  ex = MyApp()

  sys.exit(app.exec_())


2.PNG



setWindowIcon() 메서드는 어플리케이션 아이콘을 설정하도록 합니다.

이를 위해서 QIcon 객체를 생성하였습니다. 

QIcon()에 보여질 이미지('icon.png')를 입력합니다.

이미지 파일을 다른 폴더에 따로 저장해 둔 경우에는 경로까지 함께 입력해주면 됩니다.


setGeometry() 메서드는 창의 위치와 크기를 설정합니다.

앞의 두 매개변수는 창의 x, y 위치를 결정하고, 뒤의 두 매개변수는 각각 창의 너비와 높이를 결정합니다.


실습> 창 닫기


프로그래밍을 통해 창을 닫는 법을 알아보겠습니다.


# -*- coding: utf-8 -*-

# 창 닫기


import sys

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton

from PyQt5.QtCore import QCoreApplication



class MyApp(QWidget):


  def __init__(self):

      super().__init__()

      self.initUI()


  def initUI(self):

      btn = QPushButton('Quit', self)

      btn.move(50, 50)

      btn.resize(btn.sizeHint())

      btn.clicked.connect(QCoreApplication.instance().quit)


      self.setWindowTitle('Quit Button')

      self.setGeometry(300, 300, 300, 200)

      self.show()



if __name__ == '__main__':

    app = QApplication(sys.argv)

    ex = MyApp()

    sys.exit(app.exec_())


'Quit' 버튼을 만들었습니다.

이제 이 버튼을 클릭하면 어플리케이션이 종료됩니다.



3.PNG


btn은 QPushButton 클래스의 인스턴스입니다.

생성자 (QPushButton())의 첫 번째 파라미터에는 버튼에 표시될 텍스트를 입력하고, 두 번째 파라미터에는 버튼이 위치할 부모 위젯을 입력합니다.

 

btn.clicked.connect(QCoreApplication.instance().quit)

PyQt5에서의 이벤트 처리는 시그널과 슬롯 메커니즘으로 이루어집니다.

버튼 (btn)을 클릭하면 'clicked' 시그널이 만들어집니다.

instance() 메서드는 현재 인스턴스를 반환합니다.

'clicked' 시그널은 어플리케이션을 종료하는 quit() 메서드에 연결됩니다.

이렇게 발신자 (Sender)와 수신자 (Receiver), 두 객체 간에 커뮤니케이션이 이루어집니다.

발신자는 푸시버튼 (btn)이고, 수신자는 어플리케이션 객체 (app)입니다.


댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.