Kminseo

3. PYQT_Event 본문

기타

3. PYQT_Event

Kminseo 2019. 7. 7. 20:06

Signal and Emit

Gui를 만드는 과정에서 여러가지 기능을 생성할때 클래스를 여러개 만들어서 생성할 때, 객체에서 발생한 이벤트값을 다른 객체로 전달할 때 Signal과 Emit를 사용하여 전달가능하다.

class MainDialog(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self, None)
        self.[object_name].[object_name2][str].connect(self.[connect_object].method)

class Board(QFrame,QMainWindow):
    [object_name2] = pyqtSignal(str)

    def method(self):
            self.[object_name2].emit("paused")

위 내용과 같으 코드를 짜게 되면 Class가 달라도, Event를 발생시켜 객체를 편집하는 것이 가능하다.

class MainDialog(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self, None)
        self.game_frame.msg2sscorelabel[str].connect(self.scroe_lable.setText)

class Board(QFrame,QMainWindow):
    msg2Statusbar = pyqtSignal(str)
    def pause(self):
            self.msg2sscorelabel.emit("paused")

Board Class에서 pause를 호출하게 되면 msg2sscorelabel객체의 signal이 emit되어 연결된 score_label(Qlabel)의 텍스트 값을 바꾸게 된다.

'기타' 카테고리의 다른 글

Ubuntu 기계식 키보드 Alt 한/영 변경  (0) 2019.07.10
ROS Kinetic 설치로 발생하는 python3 cv2 충돌문제  (0) 2019.07.10
5. PYQT Image Processing  (0) 2019.07.07
4. PYQT Widget  (0) 2019.07.07
2. GUI write,read API  (0) 2019.07.07
Comments