1. PyQt5 기초
페이지 정보
작성자 관리자 댓글 0건 조회 1,700회 작성일 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_())
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_())
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' 버튼을 만들었습니다.
이제 이 버튼을 클릭하면 어플리케이션이 종료됩니다.
btn은 QPushButton 클래스의 인스턴스입니다.
생성자 (QPushButton())의 첫 번째 파라미터에는 버튼에 표시될 텍스트를 입력하고, 두 번째 파라미터에는 버튼이 위치할 부모 위젯을 입력합니다.
btn.clicked.connect(QCoreApplication.instance().quit)
PyQt5에서의 이벤트 처리는 시그널과 슬롯 메커니즘으로 이루어집니다.
버튼 (btn)을 클릭하면 'clicked' 시그널이 만들어집니다.
instance() 메서드는 현재 인스턴스를 반환합니다.
'clicked' 시그널은 어플리케이션을 종료하는 quit() 메서드에 연결됩니다.
이렇게 발신자 (Sender)와 수신자 (Receiver), 두 객체 간에 커뮤니케이션이 이루어집니다.
발신자는 푸시버튼 (btn)이고, 수신자는 어플리케이션 객체 (app)입니다.
댓글목록
등록된 댓글이 없습니다.