오늘해본것은 PyQt에서 QPushButton을 클릭했을때 이미지를 띄우는프로그램을 만들어 보겠습니다.
일단 명령프롬프트 (CMD)창에 pip를 이용해 설치해야합니다.
pip install numpy
pip install matplotlib
pip install opencv-python
pip install opencv-contrib-python
pip install opencv-python-headless
를 설치해주어야 합니다.
설치가 완료되었다면
import cv2
를 해주시면 됩니다.
import sys
import cv2
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class Main(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 조직도 버튼
btn3 = QPushButton('GPIO Pin View')
btn3.setToolTip('GPIO조직도')
btn3.clicked.connect(self.GPIO)
hbox = QHBoxLayout()
hbox.addWidget(btn3)
self.setLayout(hbox)
# 타이틀
self.setWindowIcon(QIcon('raspberry.png'))
self.setWindowTitle('raspberry')
#창 크기,좌표
self.setGeometry(1000, 150, 300, 200)
self.show()
def GPIO(self):
img = cv2.imread('rasp.png'); # 이미지 불러오기
cv2.imshow("GPIO PIN", img); # 이미지 보여주기 (윈도우창 이름, 불러온 이미지)
k = cv2.waitKey(0) # 키보드 눌림 대기
if k == 27: # ESC키
cv2.destroyAllWindows();
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Main()
sys.exit(app.exec_())
전체 소스코드입니다.
이미지는 제가 하던프로젝트에서 사용하던 라즈베리파이GPIO핀을 연결해준 이미지를 가져왔습니다.
실행시화면입니다.
버튼을 눌렀을떄 나오는 화면입니다.
눌렀을때 나오는 창의 크기는 이미지의 크기와 동일합니다.
'Python > PyQt' 카테고리의 다른 글
[합동]PyQt와 소켓통신을 이용한 파일전송프로그램 (1) | 2020.11.13 |
---|---|
[PyQt5] QFileDailog를 이용하여 텍스트 파일을 불러와서 QTextEdit에 보여주기 (0) | 2020.10.29 |