소연의_개발일지
article thumbnail

파이큐티에서 클릭할 때 함수를 적용하는 방법

간단하게 버튼을 누르면 꺼지는 부분을 적용해 보겠습니다.

파이큐티 상단에 저 버튼을 누르고 드래그합니다.

이렇게 드래그하면 자동으로 창이 뜨는데, 

클릭하면 함수로 연결하게 하고 싶으므로 clicked()를 클릭하고, 

우측 하단에 편집을 클릭합니다.

수정하고 싶은 함수명을 새로 입력해 줍니다. 

미리 설정되어 있는 함수들도 있으므로 사용하고 싶은 기본 함수가 있다면 슬롯 내에서 사용해도 됩니다.

확인을 누르면 우측에 close_the_button()함수가 보이고,

버튼을 클릭했을 때(clicked()) - close_the_button() 함수가 실행된다는 뜻으로 이해할 수 있습니다.

확인을 누릅니다.

 

그럼 이렇게 버튼 클릭시 함수가 지정되었다는 것을 눈으로 확인할 수 있습니다.

 

이 ui를 실행시킬 폴더에 넣어주고 test.py로 만들어 실행시켜 주겠습니다.

(기본 코드는 위에 첨부한 ui를 py로 가져오는 링크(위키독스) 를 참고)

 

이 코드를 실행시키면

close_the_button()이 지정되지 않았다고 합니다.

버튼을 클릭했을 때 특정 함수에 연결해라! 라는 명령어를 지정해 줬을 뿐, 함수가 없어서 생기는 문제입니다.

button.clicked.connect(self.특정함수) 라는 부분을 큐티 디자이너에서 설정해 줬을 뿐, 함수는 코드 내에서 만들어줘야 합니다. 

함수 내에 이렇게만 추가하고 다시 실행시켜보면

잘 종료됩니다.

 

코드

import os
import sys

from PyQt5.QtWidgets import *
from PyQt5 import uic
# 더 추가할 필요가 있다면 추가하시면 됩니다. 예: (from PyQt5.QtGui import QIcon)

def resource_path(relative_path):
    base_path = getattr(sys, "_MEIPASS", os.path.dirname(os.path.abspath(__file__)))
    return os.path.join(base_path, relative_path)

form = resource_path('untitled.ui')
form_class = uic.loadUiType(form)[0]

class WindowClass(QMainWindow, form_class):
    def __init__(self):
        super( ).__init__( )
        self.setupUi(self)

        # 여기에 시그널, 설정

    #여기에 함수 설정
    def close_the_button(self):
        quit()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    myWindow = WindowClass( )
    myWindow.show( )
    app.exec_( )

test.py
0.00MB
untitled.ui
0.00MB

 

 

 

 

ui를 py로 불러오는 데 참고한 사이트: 위키독스 파이썬 완전정복 시리즈: https://wikidocs.net/160723

profile

소연의_개발일지

@ssoyxon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!