python/stream deck

stream deck 만들기 - 2

zoomer75 2021. 9. 28. 18:02

1편에 이어서 기본 레이아웃을 만들어 보도록 하겠습니다.

개발 환경은 다음과 같습니다. python 3.7 , pycharm 입니다.

가급적 python 3.7 이상 버전에서 실행하시기 바랍니다.

pip install pyqt5 

하셔셔 pyqt5 버전을 설치합니다.

import sys
import os
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import Qt

BASE_DIR = os.path.dirname(os.path.abspath(__file__))

class StreamDeck(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):

        # 버튼 갯수에 맞는 6개의 label 생성
        grid = QGridLayout()
        self.setLayout(grid)
        btnName = 0
        for row in range(0,2):
            for col in range(0,3):
                btnName += 1
                btn = QLabel(f'버튼 {btnName}')
                btn.setFixedSize(60,60)
                btn.setStyleSheet('border-color: #9e9e9e;\nborder-style: solid;\nborder-width: 1px;\nborder-radius: 2px')
                btn.setAlignment(Qt.AlignCenter)
                grid.addWidget(btn, row, col)


        # 윈도우 타이틀
        self.setWindowTitle('Stream Deck')
        # 윈도우 아이콘 설정
        self.setWindowIcon(QIcon(BASE_DIR + '/resource/keyboard.png'))
        # 항상위에 표시되게
        self.setWindowFlags(Qt.WindowStaysOnTopHint)
        # 창 크기 고정 및 위치 이동 ( 우측 하단 )
        self.setFixedSize(250, 200)
        screen = QDesktopWidget().screenGeometry()
        size = self.geometry()
        self.move(screen.width() - size.width() - 30, screen.height() - size.height() - 80)
        self.show()

if __name__ == '__main__':
   app = QApplication(sys.argv)
   sd = StreamDeck()
   sys.exit(app.exec_())

주석이 있으니 보시면서 궁금하신 사항은 댓글로 달아주세요.
윈도우 아이콘은 resource 폴더를 하나 만드신 다음에 원하시는 파일로 대체하시면 됩니다.

keyboard.png
18.0 kB

첨부에도 하나 올려두었습니다.

코드를 입력하시고 실행하시면 다음과 같은 화면이 뜹니다.

반응형