본문 바로가기
Programming/python

PyQt5로 파이썬 GUI 만들기 / python GUI (4) 시그널/슬롯

by 르미르미 2020. 3. 27.

파이썬 GUI를 만들려면 버튼을 클릭해서 뭔가 하고 싶은데 그게 쉽지 않다. 

파이썬 왕왕초보가 헷갈렸던 부분에 대해서 포스팅 하려고 한다. 

시그널/슬롯 아이콘을 클릭하면 위와 같은 연결 설정 창을 만날 수 있다. 

그러면 편집을 통해서 내가 원하는 함수를 실행할 수 있다.

여기서는 show_graph() 이다. 

 

그런데 내가 클릭을 해서 어떤 위젯에 무언가 나타나게 하고 싶다고 그 위젯에 연결을 하면!

편집창이 뜨지 않는다. ㅠㅠ 

 

뭐 어떻게 하다보니 편집창까지 떠서 함수 이름까지 넣었다고 하면 그 다음도 문제. 

 

그러므로 MainWindow로 입력하는 것이 좋다. 

 

고수라면 이제 방법이 있겠지. 나도 고수가 될 수 있겠지. 

 

import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic

form_class = uic.loadUiType("UIFILE.ui")[0]

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

    def show_graph(self):
        self.graph_viewer.canvas.draw()  

if __name__ == "__main__":
    app = QApplication(sys.argv)
    myWindow = MyWindow()
    myWindow.show()
    app.exec_()   

 

그 다음 main py 코드에 

def show_graph(self):

    ~~~ 

를 추가하면 된다. 

 

(아직 class에 대한 것을 잘 몰라서 공부를 해야한다. )

 

만약 수신자를 MainWindow가 아닌 다른 위젯으로 했다면 뭐 어디 다른 class에 넣어야 한다. -> error! 

왕왕초보라면 일단 수신자를 MainWindow로 연결하는 것 부터! ㅎㅎ 

 

 

 

 

댓글