PyQt(2) ≡ 개발 도구

Acrylic·2024년 3월 19일

UI 개발 도구 설정

(일단 편하게 하시라고 마우스, 키보드 설정 코드를 무료 증정해 드립니다)

# region 키보드 마우스
    def keyPressEvent(self, event):
        print('키보드: ' + str(event))

        if event.key() == Qt.Key.Key_Escape:
            sys.exit(0)

    def mousePressEvent(self, event):
        if self.ena_move:
            self.offset = event.position()

    def mouseMoveEvent(self, event):
        if self.ena_move:
            if self.offset is not None:
                pos = event.globalPosition()
                x_w = self.offset.x()
                y_w = self.offset.y()
                self.move(int(pos.x() - x_w), int(pos.y() - y_w))

    # endregion

기본적인 건 다 돼 있는데 개발 도구를 사용을 못하면 김치 담가 놓고 안 먹는 격이겠죠. 개발 도구를 사용하려면 self.findChild를 쓰시면 되겠습니다.

self.(변수 이름) = self.findChild((도구 유형), '(개발 도구 이름)')

이거면 사용 준비 끝났습니다.
개발 도구 이름은 QLabel, QPushButton 등이 있습니다.
Hoxy... import를 안 하고 쓰실 생각인 건 아니겠죠?

from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QPushButton, ...

아이고 그런데 제가 Qt Designer에 있는 도구의 이름을 바꿀 줄 모르는데요

하시는 분은 개발 도구 클릭하셔서 objectName을 바꿔 주시면 되겠습니다. 설마 맨 위에 있는데 못 찾으시는 건 아니겠지

아 근데 개발 도구 어떻게 꺼내요? 한 번 누르고 탁 뒀는데 왜 안 되지...

홀드 상태에서 폼 미쳤다에 넣으시면 됩니다.

버튼 설정

버튼 클릭하면 작동하는 코드 짜고 싶죠? 안 짜고 싶으면 말고요.

self.(버튼 변수 이름) = self.findChild(QPushButton, '(버튼 개발 도구 이름)')
self.(버튼 변수 이름).clicked.connect(self.(실행할 함수 이름))

이걸 쓰시면 함수 작성하고 버튼 딱 눌러서 함수 돌아가게 하면 되겠죠?

Label(레이블[= 라벨]) 설정

버튼 누르면 레이블이 바뀌는 거 보고 싶죠? 그렇다고 해 줘요.

self.(라벨 변수 이름) = self.findChild(QLabel, '(라벨 개발 도구 이름)')
self.(라벨 변수 이름).setText(str(넣을 값))

문자로 안 바꾸면 튕겨 버리니 조심하시고요.

파일 불러오기

self.(경로 변수) = os.path.join(utils.get_path_where_app_is_run(), "(폴더 이름)\\")

여기서 폴더 이름이 대충 resource라고 해 봅시다. 그러면 역시 main.py가 있는 위치를 기준으로 그 폴더에 있는 resource 폴더에 들어가겠죠? 그 경로를 미리 지정해 주는 겁니다. 난 여기서 불러올 거다 하실 분은요.

사진 불러오기

		pic = QPixmap(self.pathResource + "image\\(사진 이름).(확장자명)")
        pic = pic.scaled(self.(지정할 개발 도구 이름).size())
        self.(지정할 개발 도구 이름).setPixmap(pic)

그냥 이렇게 보면 헷갈리실 건데 resource에 있는 image 폴더 들어가서 찾는 겁니다. 아무튼 사진은 이렇게 불러오시면 되겠습니다.

profile
언젠간 되겠지

0개의 댓글