오늘해본것은 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핀을 연결해준 이미지를 가져왔습니다.

실행시화면입니다.

버튼을 눌렀을떄 나오는 화면입니다.

눌렀을때 나오는 창의 크기는 이미지의 크기와 동일합니다.

+ Recent posts