이벤트를 통한 객체 제어
페이지정보
내용
이벤트를 통한 객체 제어
GUI(Graphic User Interface) 프로그램이란 사용자가 프로그램과의 통신을 위해서 명령어를 text로 입력하는 것이 아니라 마우스나 키보드를 통해서 프로그램과 소통을 하도록 만든 프로그램을 말한다.
즉, 현재 사용하는 대다수의 프로그램들이 GUI 프로그램이다.
이러한 프로그램을 만들기 위해서는 개발자는 버튼, textedit, 체크박스등과 같이 위젯(widget)을 만들어서 윈도우 폼에 배치를 해야한다.
이러한 모든 위젯들은 class로 정의되어 있으며, 우리는 이 클래스를 호출함으로써 GUI 객체들을 만들어 낸다.
다시 말하면 비주얼한 버튼, textedit, 체크박스 등 모든 것이 하나의 객체(Object)라 할 수 있다.
프로그램을 통해 만들어진 객체들은 혼자서 동작하지 않는다.
근사하게 만들어진 AI(인공지능) 프로그램이 아닌 이상, 컴퓨터 또는 프로그램은 스스로 움직이지 못한다.
모든 프로그램은 프로그래밍 되어있는 조건과 순서에 따라 사용자의 명령을 받아서 수행을 할 뿐이다.
GUI 프로그램에서 사용자는 마우스나 키보드로 프로그램을 조작할 수 있다.
그 조작이 곧 프로그램에 입력하는 명령이 되고, 그 명령은 마우스클릭, 드래그 등 모든 활동들이 포함된다.
요약하면, 프로그램은 사용자가 버튼을 마우스로 클릭하는 등의 동작을 해야 작동한다는 의미다.
이렇게 사용자가 발생시키는 마우스 클릭과 같은 동작을 이벤트(Event)라고 한다.
프로그램은 사용자의 명령을 이벤트를 통해서 받아들인다.
마우스를 클릭하는 행동은 마우스 클릭 이벤트,
마우스를 드래그 하는 행동은 마우스 드래그 이벤트,
키보드의 키를 누르는 행동은 키 프레스 이벤트,
키보드의 키를 눌렀다 떼는 행동은 키 릴리즈 이벤트....
이와 같이 사용자가 하는 모든 행동은 이벤트이고, 프로그램은 이러한 이벤트를 기다렸다가 이벤트가 발생하면 프로그램된 순서대로 동작을 하게 된다.
pyside2에는 매우 다양한 GUI 객체들을 제공한다. 이를 위젯(Widget)이라고 한다.
위젯들은 각자 자기의 역할이 있다.
말 그대로 버튼 위젯은 눌리는 역할을 하고, Line Edit 위젯은 글자를 입력받는 역할을 한다.
따라서, 각 위젯이 가지는 이벤트는 그 위젯의 기능을 보면 대략 예상할 수 있다.
눌리는 역할을 하는 버튼은 마우스 클릭 이벤트(clicked)와 연결 할 수 있다.
텍스트를 입력하고 수정할 수 있는 Line Edit나 Label 같은 객체는 text의 변경 이벤트(textchanged)와 연결 할 수 있다.
다음 글에서 자주 사용하는 객체등의 기능과 이벤트의 연결에 대해서 알아본다.
Pyside6 - Qt for Python 홈페이지
https://doc.qt.io/qtforpython/index.html