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개의 댓글